Submitted URL: http://javdl.co/
Effective URL: http://www.javdl.co/
Submission: On May 08 via manual from CO

Summary

This website contacted 22 IPs in 4 countries across 18 domains to perform 69 HTTP transactions. The main IP is 2606:4700:30::6812:2f9e, located in United States and belongs to CLOUDFLARENET - Cloudflare, Inc., US. The main domain is www.javdl.co.
This is the only time www.javdl.co was scanned on urlscan.io!

urlscan.io Verdict: No classification

Domain & IP information

IP Address AS Autonomous System
1 5 2606:4700:30:... 13335 (CLOUDFLAR...)
4 209.197.3.15 20446 (HIGHWINDS3)
1 2a00:1450:400... 15169 (GOOGLE)
23 2606:4700:30:... 13335 (CLOUDFLAR...)
1 205.185.216.42 20446 (HIGHWINDS3)
1 2a00:1450:400... 15169 (GOOGLE)
1 2606:4700::68... 13335 (CLOUDFLAR...)
1 94.31.29.128 33438 (HIGHWINDS2)
2 31.220.24.95 39572 (ADVANCEDH...)
2 147.135.1.203 16276 (OVH)
8 88.208.59.71 39572 (ADVANCEDH...)
2 2a00:1450:400... 15169 (GOOGLE)
1 2a00:1450:400... 15169 (GOOGLE)
7 95.211.229.247 60781 (LEASEWEB-...)
1 95.211.229.245 60781 (LEASEWEB-...)
1 54.87.177.236 14618 (AMAZON-AES)
1 109.206.164.148 50245 (SERVEREL-AS)
1 69.89.69.121 558 (NNEXT)
2 216.18.168.166 29789 (REFLECTED)
3 205.185.208.78 20446 (HIGHWINDS3)
2 216.18.168.26 29789 (REFLECTED)
69 22
Domain Requested by
24 img.javdl.co www.javdl.co
8 syndication.exoclick.com ads.exoclick.com
6 ca.clcknads.pro www.javdl.co
ca.clcknads.pro
4 maxcdn.bootstrapcdn.com www.javdl.co
3 hw-cdn2.contentabc.com
3 www.javdl.co www.javdl.co
2 etahub.com
2 a.adtng.com ca.clcknads.pro
2 acrmbjkk6qc5utby.pro ca.clcknads.pro
2 www.google-analytics.com www.javdl.co
2 xxlargepop.com www.javdl.co
xxlargepop.com
1 engine.phn.doublepimp.com ca.clcknads.pro
1 sitemnk.com xxlargepop.com
1 press.connectioncdn.com gitgrub.pro
1 dcba.popcash.net cdn.popcash.net
1 fonts.gstatic.com www.javdl.co
1 gitgrub.pro www.javdl.co
1 cdn.popcash.net www.javdl.co
1 cdnjs.cloudflare.com www.javdl.co
1 ajax.googleapis.com www.javdl.co
1 ads.exoclick.com www.javdl.co
1 fonts.googleapis.com www.javdl.co
1 javdl.co 1 redirects
69 23

This site contains links to these domains. Also see Links.

Domain
clickaine.com
Subject Issuer Validity Valid
*.bootstrapcdn.com
COMODO RSA Domain Validation Secure Server CA
2018-10-03 -
2019-10-12
a year crt.sh
*.googleapis.com
Google Internet Authority G3
2019-04-16 -
2019-07-09
3 months crt.sh
*.exoclick.com
Go Daddy Secure Certificate Authority - G2
2018-08-03 -
2019-10-02
a year crt.sh
ssl412106.cloudflaressl.com
COMODO ECC Domain Validation Secure Server CA 2
2019-03-02 -
2019-09-08
6 months crt.sh
*.google-analytics.com
Google Internet Authority G3
2019-04-16 -
2019-07-09
3 months crt.sh
*.google.com
Google Internet Authority G3
2019-04-16 -
2019-07-09
3 months crt.sh
*.popcash.net
COMODO RSA Domain Validation Secure Server CA
2017-04-05 -
2020-04-26
3 years crt.sh
xxlargepop.com
Let's Encrypt Authority X3
2019-04-17 -
2019-07-16
3 months crt.sh
acrmbjkk6qc5utby.pro
Let's Encrypt Authority X3
2019-04-15 -
2019-07-14
3 months crt.sh
sitemnk.com
Let's Encrypt Authority X3
2019-04-24 -
2019-07-23
3 months crt.sh
engine.doublepimp.com
Go Daddy Secure Certificate Authority - G2
2018-07-22 -
2019-09-20
a year crt.sh
*.adtng.com
DigiCert SHA2 High Assurance Server CA
2018-07-20 -
2020-07-24
2 years crt.sh
*.contentabc.com
DigiCert SHA2 High Assurance Server CA
2017-10-30 -
2019-07-13
2 years crt.sh
etahub.com
DigiCert SHA2 High Assurance Server CA
2019-04-08 -
2020-04-15
a year crt.sh

This page contains 9 frames:

Primary Page: http://www.javdl.co/
Frame ID: 833D2C52CECFD1C4604A006251B799EE
Requests: 64 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561533&type=728x90&p=http%3A//www.javdl.co/&dt=1557346407774&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 2869CA9272BCDE98C425321BEE166F36
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561537&type=300x100&p=http%3A//www.javdl.co/&dt=1557346407776&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 06006D997509CCF2C5609851FED3D254
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561539&type=300x100&p=http%3A//www.javdl.co/&dt=1557346407779&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 4A07E17354DD2630A20C62AC21E645D5
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2562901&type=728x90&p=http%3A//www.javdl.co/&dt=1557346407823&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 5813A3278749471AF9A5B96A8DA08085
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561543&type=300x100&p=http%3A//www.javdl.co/&dt=1557346407824&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 3852CE2DE094E1048A995B1117B929C1
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561513&type=300x250&p=http%3A//www.javdl.co/&dt=1557346407838&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 6AA38C7D08CAC6F13C170CD00C9FAC69
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561521&type=300x250&p=http%3A//www.javdl.co/&dt=1557346407841&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 9BC3162C0D854004D960A422D688338D
Requests: 1 HTTP requests in this frame

Frame: http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561527&type=300x250&p=http%3A//www.javdl.co/&dt=1557346407856&sub=&tags=&screen_resolution=1600x1200&el=
Frame ID: 41EB8779508201A4009A36B33B5EACE9
Requests: 1 HTTP requests in this frame

Screenshot


Page URL History Show full URLs

  1. http://javdl.co/ HTTP 302
    http://www.javdl.co/ Page URL

Detected technologies

Overall confidence: 100%
Detected patterns
  • headers server /cloudflare/i

Overall confidence: 100%
Detected patterns
  • html /<link[^>]* href=[^>]+font-awesome(?:\.min)?\.css/i

Overall confidence: 100%
Detected patterns
  • script /google-analytics\.com\/(?:ga|urchin|(analytics))\.js/i
  • env /^gaGlobal$/i

Overall confidence: 100%
Detected patterns
  • html /<link[^>]* href=[^>]+fonts\.(?:googleapis|google)\.com/i

Overall confidence: 100%
Detected patterns
  • env /^jQuery$/i

Overall confidence: 100%
Detected patterns
  • html /<link[^>]+?href="[^"]+bootstrap(?:\.min)?\.css/i

Page Statistics

69
Requests

35 %
HTTPS

33 %
IPv6

18
Domains

23
Subdomains

22
IPs

4
Countries

1342 kB
Transfer

6125 kB
Size

8
Cookies

Page URL History

This captures the URL locations of the websites, including HTTP redirects and client-side redirects via JavaScript or Meta fields.

  1. http://javdl.co/ HTTP 302
    http://www.javdl.co/ Page URL

Redirected requests

There were HTTP redirect chains for the following requests:

69 HTTP transactions

Resource
Path
Size
x-fer
Type
MIME-Type
Primary Request /
www.javdl.co/
Redirect Chain
  • http://javdl.co/
  • http://www.javdl.co/
37 KB
9 KB
Document
General
Full URL
http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2f9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
6af3ffb76f539b6bb50872bf63deef9ab8b199a92dc299f7465ebf37cf1f917a

Request headers

Host
www.javdl.co
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding
gzip, deflate
Cookie
__cfduid=ddfb7992fc7fedf25ad0c7e7fb0b1b25e1557346405
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Server
cloudflare
CF-RAY
4d3e181cce096491-FRA
Content-Encoding
gzip

Redirect headers

Date
Wed, 08 May 2019 20:13:25 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Set-Cookie
__cfduid=ddfb7992fc7fedf25ad0c7e7fb0b1b25e1557346405; expires=Thu, 07-May-20 20:13:25 GMT; path=/; domain=.javdl.co; HttpOnly
Location
http://www.javdl.co/
X-Served-By
Namecheap URL Forward
Server
cloudflare
CF-RAY
4d3e181a5bf4bf00-FRA
bootstrap.min.css
maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/
147 KB
20 KB
Stylesheet
General
Full URL
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
H2
Security
TLS 1.3, , AES_256_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
aebf611c1438dc7ec748e9a6364c734066b34bf2a1c7e2fc6511ed784635b50e

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/
Origin
http://www.javdl.co

Response headers

date
Wed, 08 May 2019 20:13:27 GMT
content-encoding
gzip
last-modified
Wed, 12 Dec 2018 18:34:09 GMT
access-control-allow-origin
*
etag
"1544639649"
vary
Accept-Encoding
x-cache
HIT
content-type
text/css; charset=utf-8
status
200
cache-control
public, max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
timing-allow-origin
*
content-length
20027
font-awesome.min.css
maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/
30 KB
7 KB
Stylesheet
General
Full URL
https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
H2
Security
TLS 1.3, , AES_256_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
799aeb25cc0373fdee0e1b1db7ad6c2f6a0e058dfadaa3379689f583213190bd

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

date
Wed, 08 May 2019 20:13:27 GMT
content-encoding
gzip
last-modified
Wed, 12 Dec 2018 18:35:20 GMT
access-control-allow-origin
*
etag
"1544639720"
vary
Accept-Encoding
x-cache
HIT
content-type
text/css; charset=utf-8
status
200
cache-control
public, max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
timing-allow-origin
*
content-length
7050
css
fonts.googleapis.com/
2 KB
571 B
Stylesheet
General
Full URL
https://fonts.googleapis.com/css?family=Merriweather
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2a00:1450:4001:81f::200a , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
ESF /
Resource Hash
0115a1ab090f777dd94710c90a18a1885f65b15be4f2b0ea81586d3e6c971831
Security Headers
Name Value
Strict-Transport-Security max-age=31536000
X-Frame-Options SAMEORIGIN
X-Xss-Protection 0

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

strict-transport-security
max-age=31536000
content-encoding
br
last-modified
Wed, 08 May 2019 20:13:27 GMT
server
ESF
access-control-allow-origin
*
date
Wed, 08 May 2019 20:13:27 GMT
x-frame-options
SAMEORIGIN
content-type
text/css; charset=utf-8
status
200
alt-svc
quic=":443"; ma=2592000; v="46,44,43,39"
cache-control
private, max-age=86400, stale-while-revalidate=604800
timing-allow-origin
*
link
<https://fonts.gstatic.com>; rel=preconnect; crossorigin
x-xss-protection
0
expires
Wed, 08 May 2019 20:13:27 GMT
style.min.css
www.javdl.co/static/css/
2 KB
1 KB
Stylesheet
General
Full URL
http://www.javdl.co/static/css/style.min.css
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2f9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
5a96a7aa7178cd8784f22cf7a8cbb981afc596f0ac9683b8858070e796fac1c2

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Content-Encoding
gzip
CF-Cache-Status
HIT
Last-Modified
Sun, 16 Apr 2017 14:01:28 GMT
Server
cloudflare
ETag
W/"1492351288.9983854-1750-3846443815"
Vary
Accept-Encoding
Content-Type
text/css; charset=utf-8
Cache-Control
public, max-age=43200
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4d3e1827ab306491-FRA
Expires
Thu, 09 May 2019 08:13:27 GMT
JavDL.png
www.javdl.co/static/img/
4 KB
5 KB
Image
General
Full URL
http://www.javdl.co/static/img/JavDL.png
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
7c8217822fcddf66cc51f514a7f7d472cf7f62d36cb327c3179a9972658c1c71

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
CF-Cache-Status
HIT
Last-Modified
Sun, 16 Apr 2017 14:01:28 GMT
Server
cloudflare
ETag
"1492351288.9703853-4261-2538410277"
Vary
Accept-Encoding
Content-Type
image/png
Cache-Control
public, max-age=43200
Connection
keep-alive
Accept-Ranges
bytes
CF-RAY
4d3e1827b87ac290-FRA
Content-Length
4261
Expires
Thu, 09 May 2019 08:13:27 GMT
ads.js
ads.exoclick.com/
2 KB
1 KB
Script
General
Full URL
https://ads.exoclick.com/ads.js
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
205.185.216.42 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
map2.hwcdn.net
Software
/
Resource Hash
59ddae45b03564f67a3341d574c10c172bd2b76cc882016f6f7c25a130b72ee1

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Content-Encoding
gzip
X-HW
1557346407.dop082.lo4.t,1557346407.cds052.lo4.shn,1557346407.dop082.lo4.t,1557346407.cds099.lo4.c
Content-Type
text/javascript;charset=UTF-8
Cache-Control
max-age=10800
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
825
QmRb8T2DbvxFiAYtdxYcxvLmVYP2enRgyBwdZx5gRrmetX
img.javdl.co/ipfs/
50 KB
51 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmRb8T2DbvxFiAYtdxYcxvLmVYP2enRgyBwdZx5gRrmetX
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
7c4e61e4f208d83a0ab9abe4c5c1daba48f46eb4ce2bbd7060a96414fb028cf9

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqdaseoy5q2qgmawgzc4ixnw6seok3x2oninveinynwodhjudbuzea
X-Ipfs-Gateway-Host
gateway-bank2-fra2
Connection
keep-alive
Content-Length
51109
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmRb8T2DbvxFiAYtdxYcxvLmVYP2enRgyBwdZx5gRrmetX"
X-IPFS-POP
gateway-bank2-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmRb8T2DbvxFiAYtdxYcxvLmVYP2enRgyBwdZx5gRrmetX
Accept-Ranges
bytes
CF-RAY
4d3e18289ba9c2e0-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmZ8XNCCrawnd3VSyW6N8ANNzfDf5JS5JEoenVyd7Bgy4n
img.javdl.co/ipfs/
43 KB
44 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmZ8XNCCrawnd3VSyW6N8ANNzfDf5JS5JEoenVyd7Bgy4n
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
f796b67a4430e74484fc9c6bbb7d9ccd4b28a2117c293bf7f723144e037fe299

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqkavkirjlypskfeumcoou4h2bljea7gb32jgl4h4tbpr7hu4jjamy
X-Ipfs-Gateway-Host
gateway-bank2-fra2
Connection
keep-alive
Content-Length
44097
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmZ8XNCCrawnd3VSyW6N8ANNzfDf5JS5JEoenVyd7Bgy4n"
X-IPFS-POP
gateway-bank2-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmZ8XNCCrawnd3VSyW6N8ANNzfDf5JS5JEoenVyd7Bgy4n
Accept-Ranges
bytes
CF-RAY
4d3e1828893f27a2-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmVTTKFccBnbAcGK7JYoDDf7hoqAfP6uEd13hAtQXBhbyZ
img.javdl.co/ipfs/
20 KB
21 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmVTTKFccBnbAcGK7JYoDDf7hoqAfP6uEd13hAtQXBhbyZ
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
5cdac6a09346482fea572f52e8b88e3f288af1a54b8779cd16dd4a72a8cc3d9e

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqgtp75vh4yx2cfbas3ccrsms2vjkqcugigpoyehf4gp5kmdsadk6a
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
20400
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmVTTKFccBnbAcGK7JYoDDf7hoqAfP6uEd13hAtQXBhbyZ"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmVTTKFccBnbAcGK7JYoDDf7hoqAfP6uEd13hAtQXBhbyZ
Accept-Ranges
bytes
CF-RAY
4d3e1828880f975a-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmZzMvkHgATebHXbg9gyjgva9Zf7fi9YYD6ng34XrJsvEj
img.javdl.co/ipfs/
46 KB
47 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmZzMvkHgATebHXbg9gyjgva9Zf7fi9YYD6ng34XrJsvEj
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
7250b72365d469ab6b2e00bbf8bfebe9c7cd7a075e547b6c4bf6953a6f8a8138

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqk2gngyijrfzo47mvj673rxjclmodphl4gvyy2fb7gvinnlskcqea
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
47310
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmZzMvkHgATebHXbg9gyjgva9Zf7fi9YYD6ng34XrJsvEj"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmZzMvkHgATebHXbg9gyjgva9Zf7fi9YYD6ng34XrJsvEj
Accept-Ranges
bytes
CF-RAY
4d3e18288d05bf28-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmPudQPshAtX9yeSGm1ph6SW2wd7aTKWJ44bmiBdDeWmBp
img.javdl.co/ipfs/
14 KB
15 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmPudQPshAtX9yeSGm1ph6SW2wd7aTKWJ44bmiBdDeWmBp
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2f9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
0fc9c95a3d6e92c05d3490294258903b2428ca016517bd36b03703ee9c3c308f

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqbottavt6juteakocixfefans3wlkhgzuutccnxzikbwdadtatz6y
X-Ipfs-Gateway-Host
gateway-bank2-fra2
Connection
keep-alive
Content-Length
14038
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmPudQPshAtX9yeSGm1ph6SW2wd7aTKWJ44bmiBdDeWmBp"
X-IPFS-POP
gateway-bank2-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmPudQPshAtX9yeSGm1ph6SW2wd7aTKWJ44bmiBdDeWmBp
Accept-Ranges
bytes
CF-RAY
4d3e18289e33c2a4-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmd3Y2Uh2dHM1A69ofnL7xxioByXfnbANDAfUZS9zvh61g
img.javdl.co/ipfs/
42 KB
43 KB
Image
General
Full URL
http://img.javdl.co/ipfs/Qmd3Y2Uh2dHM1A69ofnL7xxioByXfnbANDAfUZS9zvh61g
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
3e7aab87da3863eb0199ceccc302e316bb2a5e7f27a3548245a17e69e7489bb3

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqnu7g7sufj4qck2a67ftmc4uxrph7qdf2ucy7hx6gt2hixidsnhcy
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
43509
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"Qmd3Y2Uh2dHM1A69ofnL7xxioByXfnbANDAfUZS9zvh61g"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/Qmd3Y2Uh2dHM1A69ofnL7xxioByXfnbANDAfUZS9zvh61g
Accept-Ranges
bytes
CF-RAY
4d3e1828ba6d9aaa-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmZ9gmhoC1uwy8e28HoEhoQoppcD8EzWfuPP5hS6Y5abrd
img.javdl.co/ipfs/
41 KB
42 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmZ9gmhoC1uwy8e28HoEhoQoppcD8EzWfuPP5hS6Y5abrd
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
418c31a4b94cd34f0e548e43daf6d5f6ea92fc9f13064a2c046e0a7bb3e1ac6b

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqkbil7wnuqm2wgzzbwgwferiaidfbk3bgkehmaslo5525qowy7tdq
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
41985
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmZ9gmhoC1uwy8e28HoEhoQoppcD8EzWfuPP5hS6Y5abrd"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmZ9gmhoC1uwy8e28HoEhoQoppcD8EzWfuPP5hS6Y5abrd
Accept-Ranges
bytes
CF-RAY
4d3e1828cd7fbf28-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmYC9bsacdgKWRiqBi6hiBTfVALRuNo414x4zKyV4B5vwT
img.javdl.co/ipfs/
44 KB
45 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmYC9bsacdgKWRiqBi6hiBTfVALRuNo414x4zKyV4B5vwT
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
1e12cab6911265e48f2139537efc957ef3a6531a68e8bd67b8141058e079dd87

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqjez2pssbtqy4ygfb5apdzsouzidmq2w47dqde2k2qmqcsswlxx2q
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
44750
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmYC9bsacdgKWRiqBi6hiBTfVALRuNo414x4zKyV4B5vwT"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmYC9bsacdgKWRiqBi6hiBTfVALRuNo414x4zKyV4B5vwT
Accept-Ranges
bytes
CF-RAY
4d3e1828d98e27a2-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmTK8zFH8M3kUr7LnxFtJ6MCyvC48uqLoS3ycrgdLNoY9g
img.javdl.co/ipfs/
44 KB
45 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmTK8zFH8M3kUr7LnxFtJ6MCyvC48uqLoS3ycrgdLNoY9g
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
249ac2a536e3459ff1a36ab9b7cd348a7a0ae225741eca18c93e0ec947f569e9

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqetzz7koiqtwwqndaiqgbgt5primxzszopj3hcpb3ir3x5eiqngmy
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
44796
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmTK8zFH8M3kUr7LnxFtJ6MCyvC48uqLoS3ycrgdLNoY9g"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmTK8zFH8M3kUr7LnxFtJ6MCyvC48uqLoS3ycrgdLNoY9g
Accept-Ranges
bytes
CF-RAY
4d3e1828dcb8c2e0-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmNPqd2DpKfEAqyDK39dAya7uLQTH2G9qVas4XxgAYcQtD
img.javdl.co/ipfs/
37 KB
38 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmNPqd2DpKfEAqyDK39dAya7uLQTH2G9qVas4XxgAYcQtD
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
319ed578471180105b8b349ebf45b562ccbd3b868c6e82701f5e15c2214773b6

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqabuiux4dbrp73yjqgjgg4qrrjqp2tftxdnw655rzldvth6zjhmhq
X-Ipfs-Gateway-Host
gateway-bank2-fra2
Connection
keep-alive
Content-Length
37666
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmNPqd2DpKfEAqyDK39dAya7uLQTH2G9qVas4XxgAYcQtD"
X-IPFS-POP
gateway-bank2-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmNPqd2DpKfEAqyDK39dAya7uLQTH2G9qVas4XxgAYcQtD
Accept-Ranges
bytes
CF-RAY
4d3e18294e31bf28-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmRDNmKxv1y67zrDTTnd1Qpcsf2Sg9jCqvFeyypXvLt7DM
img.javdl.co/ipfs/
43 KB
44 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmRDNmKxv1y67zrDTTnd1Qpcsf2Sg9jCqvFeyypXvLt7DM
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
eab46d937d034868ce10397577e60af73e655162a2257c350d94a022bc0ffc2e

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqcvnpxo2owksdpzh43myt2cjpbbjobb72cnizgctfeqhclnbx353a
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
43935
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmRDNmKxv1y67zrDTTnd1Qpcsf2Sg9jCqvFeyypXvLt7DM"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmRDNmKxv1y67zrDTTnd1Qpcsf2Sg9jCqvFeyypXvLt7DM
Accept-Ranges
bytes
CF-RAY
4d3e18296959975a-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmfSwjQUVhA9firnjeWv3AYKZ9yRQBZ7bJ4mXLvtBHQ8Zu
img.javdl.co/ipfs/
47 KB
48 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmfSwjQUVhA9firnjeWv3AYKZ9yRQBZ7bJ4mXLvtBHQ8Zu
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
8463ba0a59cedfb72f0b1ef36bb9d91a5fa7d6641308b5ee21c6124005a0ef11

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqp4m3i5zccly6ljy6huyg2j52mre43vk5dtvdfcybhqieh2mdwrca
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
48230
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmfSwjQUVhA9firnjeWv3AYKZ9yRQBZ7bJ4mXLvtBHQ8Zu"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmfSwjQUVhA9firnjeWv3AYKZ9yRQBZ7bJ4mXLvtBHQ8Zu
Accept-Ranges
bytes
CF-RAY
4d3e182909be27a2-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmRqg7kW5FTsCbE3z8uFsigRd9kDG5hs5wP4VPYTbSG7Az
img.javdl.co/ipfs/
42 KB
43 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmRqg7kW5FTsCbE3z8uFsigRd9kDG5hs5wP4VPYTbSG7Az
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
6e20b663ac05a26897aa5f6b4e850110c062454cb993e2128012e9bee9c98b96

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqdiat66jyrwbnwzqndufkiwgfqsis7oqydljl2gldqozw3qquxcqy
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
42717
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmRqg7kW5FTsCbE3z8uFsigRd9kDG5hs5wP4VPYTbSG7Az"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmRqg7kW5FTsCbE3z8uFsigRd9kDG5hs5wP4VPYTbSG7Az
Accept-Ranges
bytes
CF-RAY
4d3e182908cf975a-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmaSjkKPwjqfbfwaANhfU5D91i8xG9AJUZcD4ZueMm1GJN
img.javdl.co/ipfs/
42 KB
43 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmaSjkKPwjqfbfwaANhfU5D91i8xG9AJUZcD4ZueMm1GJN
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
7fb7e7e6cd94e0e63aebe1288396a4ca5c50df07296c67f0067ce83299b6e1ce

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqlhw3mwj63mglj6lawmhuk6bbizjvofwryp2ickrkvimckc44tpcy
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
43425
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmaSjkKPwjqfbfwaANhfU5D91i8xG9AJUZcD4ZueMm1GJN"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmaSjkKPwjqfbfwaANhfU5D91i8xG9AJUZcD4ZueMm1GJN
Accept-Ranges
bytes
CF-RAY
4d3e18291d96c2e0-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmUtkawFcf6JrQVgKajsfe3yCpYi2AbEQvnEsvQ3KG8bqq
img.javdl.co/ipfs/
49 KB
50 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmUtkawFcf6JrQVgKajsfe3yCpYi2AbEQvnEsvQ3KG8bqq
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
f7657aefb0ce8467579a18504210731162193c08c1363bc8c1f0299e48c7bad9

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqgcx22cubpeuyq2gogzuyeccbnx3gnb4xmqyimlno44bzdsfrz2ia
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
50510
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmUtkawFcf6JrQVgKajsfe3yCpYi2AbEQvnEsvQ3KG8bqq"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmUtkawFcf6JrQVgKajsfe3yCpYi2AbEQvnEsvQ3KG8bqq
Accept-Ranges
bytes
CF-RAY
4d3e182939e127a2-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmfQMQF3GdVqJWnoykj6Y5zBRsu9qqd2TjGvyk5cF63S62
img.javdl.co/ipfs/
46 KB
47 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmfQMQF3GdVqJWnoykj6Y5zBRsu9qqd2TjGvyk5cF63S62
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
74a75d91dc2098cf624133ccad245e8c10788c52c0fdd6085750518180f49c7a

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqp3cloi37h5nhmcypp43ltsa43vmjjzezerogbjxorgv4redgjtry
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
46763
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmfQMQF3GdVqJWnoykj6Y5zBRsu9qqd2TjGvyk5cF63S62"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmfQMQF3GdVqJWnoykj6Y5zBRsu9qqd2TjGvyk5cF63S62
Accept-Ranges
bytes
CF-RAY
4d3e18297be89aaa-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmc7Qv8PssDy4FMP6XoGiLoMQoY8mYemeCu7dkEzEbrL5f
img.javdl.co/ipfs/
50 KB
51 KB
Image
General
Full URL
http://img.javdl.co/ipfs/Qmc7Qv8PssDy4FMP6XoGiLoMQoY8mYemeCu7dkEzEbrL5f
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
491bc78dd405175a1a3517828c6e1309e6b2367285b0e681a56bbe03c7991064

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqmzh3ysdx2okvqxnumqwwkxlcmh2nublsy6og4kgqa52gkkj5tsyq
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
51030
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"Qmc7Qv8PssDy4FMP6XoGiLoMQoY8mYemeCu7dkEzEbrL5f"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/Qmc7Qv8PssDy4FMP6XoGiLoMQoY8mYemeCu7dkEzEbrL5f
Accept-Ranges
bytes
CF-RAY
4d3e18290de1bf28-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmQfm4sMWDTbBQ9FgAHPGcypLqspN3bh484dsfiqoAqwp7
img.javdl.co/ipfs/
46 KB
46 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmQfm4sMWDTbBQ9FgAHPGcypLqspN3bh484dsfiqoAqwp7
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
a3c4b125648bee6d698c385d92493e2ab4744de8ded2dca9bba44d99bdc1bab0

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqcfhezeqgcgxo6t3qkqlqy3a4qenfudoq2tuuhhwp3tb4smivxzfa
X-Ipfs-Gateway-Host
gateway-bank2-fra2
Connection
keep-alive
Content-Length
46622
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmQfm4sMWDTbBQ9FgAHPGcypLqspN3bh484dsfiqoAqwp7"
X-IPFS-POP
gateway-bank2-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmQfm4sMWDTbBQ9FgAHPGcypLqspN3bh484dsfiqoAqwp7
Accept-Ranges
bytes
CF-RAY
4d3e18294b969aaa-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmbZJ7SkCpHcrbL5qVeAndgbKdp6SgzNxNxZXzPvvfHGPp
img.javdl.co/ipfs/
20 KB
21 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmbZJ7SkCpHcrbL5qVeAndgbKdp6SgzNxNxZXzPvvfHGPp
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
dc6ada326bab256cbbb1d29e40fd1f497f82495bb5c131ef832f8688c1f2695b

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqmizjq2v7bkyrloji4r32pgudth6w4tj5zdzw52p2in7y5yt3xnby
X-Ipfs-Gateway-Host
gateway-bank2-fra2
Connection
keep-alive
Content-Length
20641
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmbZJ7SkCpHcrbL5qVeAndgbKdp6SgzNxNxZXzPvvfHGPp"
X-IPFS-POP
gateway-bank2-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmbZJ7SkCpHcrbL5qVeAndgbKdp6SgzNxNxZXzPvvfHGPp
Accept-Ranges
bytes
CF-RAY
4d3e1829290f975a-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
Qmc5SeqF21QTP36NdJb2ENTZ22G5128cYVqHLxA1PZd33F
img.javdl.co/ipfs/
21 KB
22 KB
Image
General
Full URL
http://img.javdl.co/ipfs/Qmc5SeqF21QTP36NdJb2ENTZ22G5128cYVqHLxA1PZd33F
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
eab99114e50ba90121c9f11d00cb84296cc0369cfb0221bfe0d9fca15081e453

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqmyhsfy2o6gmahvmv3gjgvnkskedeeat73mtd3rwo3lqwg4l3etkq
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
21665
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"Qmc5SeqF21QTP36NdJb2ENTZ22G5128cYVqHLxA1PZd33F"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/Qmc5SeqF21QTP36NdJb2ENTZ22G5128cYVqHLxA1PZd33F
Accept-Ranges
bytes
CF-RAY
4d3e18290b159aaa-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmNaH1Hfmz2Li5AEoKdjMKUidmnqX71V2DNgsb8cHSCowG
img.javdl.co/ipfs/
43 KB
44 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmNaH1Hfmz2Li5AEoKdjMKUidmnqX71V2DNgsb8cHSCowG
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
30ec8a575c9f71cf3b3b6473e5f006a28896eabb61227d9183b8bfe2f0330dce

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqag7mxh2zof3kqyjy7pyccekpo7hhewadfajf6mnetwkm4kdicosy
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
43915
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmNaH1Hfmz2Li5AEoKdjMKUidmnqX71V2DNgsb8cHSCowG"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmNaH1Hfmz2Li5AEoKdjMKUidmnqX71V2DNgsb8cHSCowG
Accept-Ranges
bytes
CF-RAY
4d3e1828edadbf28-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmRQ1deqfKs36jsAV4c8jFsy5xLDZ8n7cSKVaFVwAs3NEx
img.javdl.co/ipfs/
23 KB
24 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmRQ1deqfKs36jsAV4c8jFsy5xLDZ8n7cSKVaFVwAs3NEx
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
cc44029b34ab8e8170d8ccd1e2a65e0d3b509d385ad00ac1714061d40398788e

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqc233wb3czhzkhmvzbs5fjwxjswgxrrgh7wde2xx75uehkmx5cvli
X-Ipfs-Gateway-Host
gateway-bank1-fra2
Connection
keep-alive
Content-Length
23737
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmRQ1deqfKs36jsAV4c8jFsy5xLDZ8n7cSKVaFVwAs3NEx"
X-IPFS-POP
gateway-bank1-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmRQ1deqfKs36jsAV4c8jFsy5xLDZ8n7cSKVaFVwAs3NEx
Accept-Ranges
bytes
CF-RAY
4d3e18293e12c2e0-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmZBnHzduvpsKrymST1C8GGEhidC1r4mVaXzEVMwS7H7fL
img.javdl.co/ipfs/
23 KB
24 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmZBnHzduvpsKrymST1C8GGEhidC1r4mVaXzEVMwS7H7fL
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2e9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
232abef8bbc3475183d4f95bbe608a7d8cf379bd4bf658986e8de28d628da716

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqkckxhroruwlck2eh6sm5e5um6uoykqcni76q2fpay5jr35oc3vby
X-Ipfs-Gateway-Host
gateway-bank2-fra2
Connection
keep-alive
Content-Length
23310
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmZBnHzduvpsKrymST1C8GGEhidC1r4mVaXzEVMwS7H7fL"
X-IPFS-POP
gateway-bank2-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmZBnHzduvpsKrymST1C8GGEhidC1r4mVaXzEVMwS7H7fL
Accept-Ranges
bytes
CF-RAY
4d3e18297a1627a2-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
QmYE3cjEMhovnLHzRKHFKoxCFWNxkVxxeKNfsxWXFarTdU
img.javdl.co/ipfs/
47 KB
48 KB
Image
General
Full URL
http://img.javdl.co/ipfs/QmYE3cjEMhovnLHzRKHFKoxCFWNxkVxxeKNfsxWXFarTdU
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
2606:4700:30::6812:2f9e , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
ba2f014bf570ccb26ced520d7589d60692bdd6eabd719b3fe096e8bae3a3ca97

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Suborigin
ipfs000bciqjfy5uo5cya2icklmttfsg64f5cloai4l4fu4k2ovfmvifa325iyy
X-Ipfs-Gateway-Host
gateway-bank2-fra2
Connection
keep-alive
Content-Length
48126
Last-Modified
Thu, 01 Jan 1970 00:00:01 GMT
Server
cloudflare
Etag
"QmYE3cjEMhovnLHzRKHFKoxCFWNxkVxxeKNfsxWXFarTdU"
X-IPFS-POP
gateway-bank2-fra2
Access-Control-Allow-Methods
GET, GET, POST, OPTIONS
Content-Type
image/jpeg
Access-Control-Allow-Origin
*
Access-Control-Expose-Headers
Content-Range, X-Chunked-Output, X-Stream-Output
Cache-Control
public, max-age=29030400, immutable
X-Ipfs-Path
/ipfs/QmYE3cjEMhovnLHzRKHFKoxCFWNxkVxxeKNfsxWXFarTdU
Accept-Ranges
bytes
CF-RAY
4d3e1828ef5bc2a4-FRA
Access-Control-Allow-Headers
X-Requested-With, Range, Content-Range, X-Chunked-Output, X-Stream-Output
jquery.min.js
ajax.googleapis.com/ajax/libs/jquery/3.1.1/
85 KB
30 KB
Script
General
Full URL
https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2a00:1450:4001:817::200a , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
sffe /
Resource Hash
85556761a8800d14ced8fcd41a6b8b26bf012d44a318866c0d81a62092efd9bf
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/
Origin
http://www.javdl.co

Response headers

date
Sat, 09 Mar 2019 00:14:30 GMT
content-encoding
gzip
x-content-type-options
nosniff
age
5255937
status
200
alt-svc
quic=":443"; ma=2592000; v="46,44,43,39"
content-length
30244
x-xss-protection
1; mode=block
last-modified
Tue, 20 Dec 2016 18:17:03 GMT
server
sffe
vary
Accept-Encoding
content-type
text/javascript; charset=UTF-8
access-control-allow-origin
*
cache-control
public, max-age=31536000, stale-while-revalidate=2592000
accept-ranges
bytes
timing-allow-origin
*
expires
Sun, 08 Mar 2020 00:14:30 GMT
tether.min.js
cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/
24 KB
7 KB
Script
General
Full URL
https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2606:4700::6813:c397 , United States, ASN13335 (CLOUDFLARENET - Cloudflare, Inc., US),
Reverse DNS
Software
cloudflare /
Resource Hash
80bd626eb6d57112072a508ee4e5ce3c2fe5673fe0a5d029810033b24aaa5e9f
Security Headers
Name Value
Strict-Transport-Security max-age=15780000; includeSubDomains

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/
Origin
http://www.javdl.co

Response headers

date
Wed, 08 May 2019 20:13:27 GMT
content-encoding
br
cf-cache-status
HIT
status
200
strict-transport-security
max-age=15780000; includeSubDomains
timing-allow-origin
*
last-modified
Thu, 17 May 2018 09:26:59 GMT
server
cloudflare
etag
W/"5afd4ae3-619d"
expect-ct
max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
vary
Accept-Encoding
content-type
application/javascript; charset=utf-8
access-control-allow-origin
*
expires
Mon, 27 Apr 2020 20:13:27 GMT
cache-control
public, max-age=30672000
cf-ray
4d3e18280b4e642b-FRA
served-in-seconds
0.003
bootstrap.min.js
maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/
46 KB
12 KB
Script
General
Full URL
https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
H2
Security
TLS 1.3, , AES_256_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
fa421b6ebbd2fb474d3a3866409ce6c1efd120b47ff256fffb8f8f50d556d3d9

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/
Origin
http://www.javdl.co

Response headers

date
Wed, 08 May 2019 20:13:27 GMT
content-encoding
gzip
last-modified
Wed, 12 Dec 2018 18:33:52 GMT
access-control-allow-origin
*
etag
"1544639632"
vary
Accept-Encoding
x-cache
HIT
content-type
text/javascript; charset=utf-8
status
200
cache-control
public, max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
timing-allow-origin
*
content-length
12031
pop.js
cdn.popcash.net/
68 KB
28 KB
Script
General
Full URL
http://cdn.popcash.net/pop.js
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
94.31.29.128 , United Kingdom, ASN33438 (HIGHWINDS2 - Highwinds Network Group, Inc., US),
Reverse DNS
94.31.29.128.IPYX-077437-ZYO.above.net
Software
NetDNA-cache/2.2 /
Resource Hash
4ae93492d1b69e7ac955ba05d9763b08ee68981baf5c03344b7df6eccd54adf7

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Content-Encoding
gzip
Last-Modified
Fri, 08 Mar 2019 14:18:39 GMT
Server
NetDNA-cache/2.2
ETag
W/"5c8279bf-10e0d"
Vary
Accept-Encoding
X-Cache
HIT
Content-Type
application/javascript
Cache-Control
max-age=86400
Transfer-Encoding
chunked
Connection
keep-alive
CF-RAY
4d33f672690ac2e5-FRA
Expires
Thu, 09 May 2019 20:13:27 GMT
apu.php
xxlargepop.com/
53 KB
53 KB
Script
General
Full URL
http://xxlargepop.com/apu.php?zoneid=1169611
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
31.220.24.95 Amsterdam, Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
2f499736d12ee05ef79d4a68e0c58d9e537795ec07652cb16793c647104c6495

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Last-Modified
Mon, 06 May 2019 09:38:30 GMT
Server
nginx
ETag
W/"5cd00096-d333"
Transfer-Encoding
chunked
Content-Type
application/javascript
Connection
keep-alive
Timing-Allow-Origin
*
crypta.js
gitgrub.pro/lib/
3 KB
1 KB
Script
General
Full URL
http://gitgrub.pro/lib/crypta.js
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
147.135.1.203 Waltham, United States, ASN16276 (OVH, FR),
Reverse DNS
ns100218.ip-147-135-1.us
Software
Apache/2.4.18 (Ubuntu) /
Resource Hash
b6b47efdb4d200f8504e677f895a246376dfa02030e15b0309c746135a89a588

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Content-Encoding
gzip
Server
Apache/2.4.18 (Ubuntu)
Connection
close
Content-Length
1248
Vary
Accept-Encoding
Content-Type
application/javascript
js
ca.clcknads.pro/v1/a/23411/
22 KB
7 KB
Script
General
Full URL
http://ca.clcknads.pro/v1/a/23411/js
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e956b38cf6bba9eb3c996a5d49d7303b3dfa87e9aa9bd9846df543f363b42c86

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/javascript; charset=UTF-8
Access-Control-Allow-Origin
*
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
23410
ca.clcknads.pro/v1/apop/js/zone/
87 KB
37 KB
Script
General
Full URL
http://ca.clcknads.pro/v1/apop/js/zone/23410
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
HTTP/1.1
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
08bb148c2be75cc25711ca59559c5fb146e245f6176f56fec2f388324d599596

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:27 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/javascript; charset=UTF-8
Access-Control-Allow-Origin
*
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
analytics.js
www.google-analytics.com/
43 KB
17 KB
Script
General
Full URL
https://www.google-analytics.com/analytics.js
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2a00:1450:4001:81d::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
3e552578c7d450b023f2cd9d28f830be4335c3acc6c4ab6dadda0769f09e5f22
Security Headers
Name Value
Strict-Transport-Security max-age=10886400; includeSubDomains; preload
X-Content-Type-Options nosniff

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

strict-transport-security
max-age=10886400; includeSubDomains; preload
content-encoding
gzip
x-content-type-options
nosniff
last-modified
Wed, 16 Jan 2019 20:01:45 GMT
server
Golfe2
age
2458
date
Wed, 08 May 2019 19:32:29 GMT
vary
Accept-Encoding
content-type
text/javascript
status
200
cache-control
public, max-age=7200
timing-allow-origin
*
alt-svc
quic=":443"; ma=2592000; v="46,44,43,39"
content-length
17543
expires
Wed, 08 May 2019 21:32:29 GMT
fontawesome-webfont.woff2
maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/
75 KB
76 KB
Font
General
Full URL
https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2?v=4.7.0
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
H2
Security
TLS 1.3, , AES_256_GCM
Server
209.197.3.15 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip0x00f.map2.ssl.hwcdn.net
Software
/
Resource Hash
2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css
Origin
http://www.javdl.co

Response headers

date
Wed, 08 May 2019 20:13:27 GMT
content-encoding
gzip
last-modified
Wed, 12 Dec 2018 18:36:18 GMT
access-control-allow-origin
*
etag
"1544639778"
vary
Accept-Encoding
x-cache
HIT
content-type
font/woff2
status
200
cache-control
public, max-age=31536000
x-hello-human
Say hello back! @getBootstrapCDN on Twitter
accept-ranges
bytes
timing-allow-origin
*
content-length
77171
u-440qyriQwlOrhSvowK_l5-fCZMdeX3rg.woff2
fonts.gstatic.com/s/merriweather/v20/
12 KB
12 KB
Font
General
Full URL
https://fonts.gstatic.com/s/merriweather/v20/u-440qyriQwlOrhSvowK_l5-fCZMdeX3rg.woff2
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2a00:1450:4001:821::2003 , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
sffe /
Resource Hash
e4fa437e044d3f739bd5e4aa2d1bd94e3952e888baec655763cd7969576001da
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 1; mode=block

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
https://fonts.googleapis.com/css?family=Merriweather
Origin
http://www.javdl.co

Response headers

date
Sat, 09 Mar 2019 20:38:23 GMT
x-content-type-options
nosniff
last-modified
Tue, 19 Feb 2019 22:23:17 GMT
server
sffe
age
5182504
content-type
font/woff2
status
200
alt-svc
quic=":443"; ma=2592000; v="46,44,43,39"
cache-control
public, max-age=31536000
accept-ranges
bytes
timing-allow-origin
*
access-control-allow-origin
*
content-length
12256
x-xss-protection
1; mode=block
expires
Sun, 08 Mar 2020 20:38:23 GMT
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 2869
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561533&type=728x90&p=http%3A//www.javdl.co/&dt=1557346407774&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer
http://www.javdl.co/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/

Response headers

Server
nginx
Date
Wed, 08 May 2019 20:13:27 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225cd33867ca7f32.378813593477785256%22%3B%7D; expires=Fri, 07-May-2021 20:13:27 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C%7D%CC1%0E%800%0CC%D1%BBtGj%E24i%DD%D30vfD%BD%3BE%C0%CA%E0%E5K%7E%3B%95%E7Aq%26%88%19%3C6%88%2B%1A%90%FAN%F0%1C%CC%7DP%BE%95%12%B0%D2%E2%8E%DA%0F%1A%D3%FA%E5%D4%E7%A3%28%A4%D6%F0M3%B4%B5%A8%3F%8A%5B%8EW%C1R%F4F%E6%05%E9R%22%F4; expires=Thu, 09-May-2019 20:13:27 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 0600
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561537&type=300x100&p=http%3A//www.javdl.co/&dt=1557346407776&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer
http://www.javdl.co/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/

Response headers

Server
nginx
Date
Wed, 08 May 2019 20:13:27 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225cd33867ca7b84.745763534022826690%22%3B%7D; expires=Fri, 07-May-2021 20:13:27 GMT; Max-Age=63072000; domain=exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 4A07
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561539&type=300x100&p=http%3A//www.javdl.co/&dt=1557346407779&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer
http://www.javdl.co/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/

Response headers

Server
nginx
Date
Wed, 08 May 2019 20:13:27 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225cd33867ca7ac2.962121841639489147%22%3B%7D; expires=Fri, 07-May-2021 20:13:27 GMT; Max-Age=63072000; domain=exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 5813
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2562901&type=728x90&p=http%3A//www.javdl.co/&dt=1557346407823&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer
http://www.javdl.co/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/

Response headers

Server
nginx
Date
Wed, 08 May 2019 20:13:27 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225cd33867d4a203.244149803500918890%22%3B%7D; expires=Fri, 07-May-2021 20:13:27 GMT; Max-Age=63072000; domain=exoclick.com impressions=x%9C%7D%CC1%0E%800%0CC%D1%BBtGj%E24i%DD%D30vfD%BD%3BE%C0%CA%E0%E5K%7E%3B%95%E7Aq%26%88%19%3C6%88%2B%1A%90%FAN%F0%1C%CC%7DP%BE%95%12%B0%D2%E2%8E%DA%0F%1A%D3%FA%E5%D4%E7%A3%28%A4%D6%F0M3%B4%B5%A8%3F%8A%5B%8EW%C1R%F4F%E6%05%E9R%22%F4; expires=Thu, 09-May-2019 20:13:27 GMT; Max-Age=86400; path=/; domain=.exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 3852
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561543&type=300x100&p=http%3A//www.javdl.co/&dt=1557346407824&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer
http://www.javdl.co/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/

Response headers

Server
nginx
Date
Wed, 08 May 2019 20:13:27 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225cd33867d48381.110924613350766543%22%3B%7D; expires=Fri, 07-May-2021 20:13:27 GMT; Max-Age=63072000; domain=exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 6AA3
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561513&type=300x250&p=http%3A//www.javdl.co/&dt=1557346407838&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer
http://www.javdl.co/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/

Response headers

Server
nginx
Date
Wed, 08 May 2019 20:13:27 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225cd33867d55216.907364542831296987%22%3B%7D; expires=Fri, 07-May-2021 20:13:27 GMT; Max-Age=63072000; domain=exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 9BC3
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561521&type=300x250&p=http%3A//www.javdl.co/&dt=1557346407841&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.247 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer
http://www.javdl.co/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/

Response headers

Server
nginx
Date
Wed, 08 May 2019 20:13:27 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A32%3A%225cd33867d5f339.20939370164908648%22%3B%7D; expires=Fri, 07-May-2021 20:13:27 GMT; Max-Age=63072000; domain=exoclick.com
Content-Encoding
gzip
Cookie set ads-iframe-display.php
syndication.exoclick.com/ Frame 41EB
0
0
Document
General
Full URL
http://syndication.exoclick.com/ads-iframe-display.php?idzone=2561527&type=300x250&p=http%3A//www.javdl.co/&dt=1557346407856&sub=&tags=&screen_resolution=1600x1200&el=
Requested by
Host: ads.exoclick.com
URL: https://ads.exoclick.com/ads.js
Protocol
HTTP/1.1
Server
95.211.229.245 , Netherlands, ASN60781 (LEASEWEB-NL-AMS-01 Netherlands, NL),
Reverse DNS
Software
nginx /
Resource Hash

Request headers

Host
syndication.exoclick.com
Connection
keep-alive
Pragma
no-cache
Cache-Control
no-cache
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer
http://www.javdl.co/
Accept-Encoding
gzip, deflate
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/

Response headers

Server
nginx
Date
Wed, 08 May 2019 20:13:27 GMT
Content-Type
text/html; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
Expires
Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control
no-cache, must-revalidate
Pragma
no-cache
P3P
CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Set-Cookie
__uvt=a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225cd33867d96a04.785480562108369430%22%3B%7D; expires=Fri, 07-May-2021 20:13:27 GMT; Max-Age=63072000; domain=exoclick.com
Content-Encoding
gzip
collect
www.google-analytics.com/r/
35 B
101 B
Image
General
Full URL
https://www.google-analytics.com/r/collect?v=1&_v=j73&a=1752643234&t=pageview&_s=1&dl=http%3A%2F%2Fwww.javdl.co%2F&ul=en-us&de=UTF-8&dt=Home%20%7C%20JavDL%20-%20watch%20Jav%20online%20streaming%20free&sd=24-bit&sr=1600x1200&vp=1585x1200&je=0&_u=IEBAAEAB~&jid=1586444635&gjid=145843581&cid=675938057.1557346408&tid=UA-97471110-1&_gid=285343981.1557346408&_r=1&z=247168798
Requested by
Host: www.javdl.co
URL: http://www.javdl.co/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2a00:1450:4001:81d::200e , Ireland, ASN15169 (GOOGLE - Google LLC, US),
Reverse DNS
Software
Golfe2 /
Resource Hash
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
Security Headers
Name Value
X-Content-Type-Options nosniff

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

pragma
no-cache
date
Wed, 08 May 2019 20:13:28 GMT
x-content-type-options
nosniff
last-modified
Sun, 17 May 1998 03:00:00 GMT
server
Golfe2
access-control-allow-origin
*
content-type
image/gif
status
200
cache-control
no-cache, no-store, must-revalidate
alt-svc
quic=":443"; ma=2592000; v="46,44,43,39"
content-length
35
expires
Fri, 01 Jan 1990 00:00:00 GMT
znWaa3gu
dcba.popcash.net/
0
117 B
XHR
General
Full URL
https://dcba.popcash.net/znWaa3gu
Requested by
Host: cdn.popcash.net
URL: http://cdn.popcash.net/pop.js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
54.87.177.236 Ashburn, United States, ASN14618 (AMAZON-AES - Amazon.com, Inc., US),
Reverse DNS
ec2-54-87-177-236.compute-1.amazonaws.com
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/
Origin
http://www.javdl.co

Response headers

status
204
pragma
no-cache
date
Wed, 08 May 2019 20:13:28 GMT
cache-control
no-cache, no-store, must-revalidate
access-control-allow-origin
*
expires
0
1169611
xxlargepop.com/get/
2 KB
2 KB
Script
General
Full URL
https://xxlargepop.com/get/1169611?zoneid=1169611&jp=_cl8845endfxnksxei9gqwb
Requested by
Host: xxlargepop.com
URL: http://xxlargepop.com/apu.php?zoneid=1169611
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_CBC
Server
109.206.164.148 , Netherlands, ASN50245 (SERVEREL-AS, NL),
Reverse DNS
109.206.164.148.serverel.net
Software
nginx /
Resource Hash
c8a25268ef0d2aff145962e587b525afe967d9aaca3cd7abb0ec688dcfe31df1
Security Headers
Name Value
Strict-Transport-Security max-age=31536000
X-Content-Type-Options nosniff

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:28 GMT
Content-Encoding
gzip
X-Content-Type-Options
nosniff
Server
nginx
Vary
Accept-Encoding
Strict-Transport-Security
max-age=31536000
Content-Type
text/javascript; charset=utf-8
Transfer-Encoding
chunked
Connection
keep-alive
stats.php
press.connectioncdn.com/f/
5 B
271 B
XHR
General
Full URL
http://press.connectioncdn.com/f/stats.php
Requested by
Host: gitgrub.pro
URL: http://gitgrub.pro/lib/crypta.js
Protocol
HTTP/1.1
Server
147.135.1.203 Waltham, United States, ASN16276 (OVH, FR),
Reverse DNS
ns100218.ip-147-135-1.us
Software
Apache/2.4.18 (Ubuntu) /
Resource Hash
fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa

Request headers

Referer
http://www.javdl.co/
Origin
http://www.javdl.co
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Content-type
application/x-www-form-urlencoded

Response headers

Date
Wed, 08 May 2019 20:13:28 GMT
Content-Encoding
gzip
Server
Apache/2.4.18 (Ubuntu)
Vary
Accept-Encoding
Content-Type
text/html; charset=UTF-8
Access-Control-Allow-Origin
*
Connection
close
Content-Length
25
blank
acrmbjkk6qc5utby.pro/
0
181 B
XHR
General
Full URL
https://acrmbjkk6qc5utby.pro/blank?adnet=&adzone=&act=ads_
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23411/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/
Origin
http://www.javdl.co

Response headers

date
Wed, 08 May 2019 20:13:28 GMT
referrer-policy
unsafe-url
server
nginx
status
200
access-control-max-age
86400
content-type
text/html; charset=UTF-8
access-control-allow-origin
http://www.javdl.co
access-control-allow-credentials
true
content-length
0
blank
acrmbjkk6qc5utby.pro/
0
181 B
XHR
General
Full URL
https://acrmbjkk6qc5utby.pro/blank?adnet=&adzone=&act=ads_
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/apop/js/zone/23410
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_256_GCM
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/
Origin
http://www.javdl.co

Response headers

date
Wed, 08 May 2019 20:13:28 GMT
referrer-policy
unsafe-url
server
nginx
status
200
access-control-max-age
86400
content-type
text/html; charset=UTF-8
access-control-allow-origin
http://www.javdl.co
access-control-allow-credentials
true
content-length
0
truncated
/
64 KB
0
Script
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
7715e7e46333a5d53a012eeb67176f26749db09bd37e610875b406140553434f

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Type
text/plain
notice.php
sitemnk.com/
7 B
341 B
Script
General
Full URL
https://sitemnk.com/notice.php?p=1474324&interactive=1&pushup=1&var=1169611&ymid=1169611
Requested by
Host: xxlargepop.com
URL: http://xxlargepop.com/apu.php?zoneid=1169611
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_CBC
Server
31.220.24.95 Amsterdam, Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
a04bf061f53e0011fd2f43bdf081526344f003c50146c88c42c2d95ef22c1821
Security Headers
Name Value
Strict-Transport-Security max-age=31536000
X-Content-Type-Options nosniff

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:28 GMT
X-Content-Type-Options
nosniff
Server
nginx
Connection
keep-alive
Content-Length
7
Strict-Transport-Security
max-age=31536000
Content-Type
text/javascript
23411
ca.clcknads.pro/v2/a/vsl/vst/
3 KB
2 KB
XHR
General
Full URL
http://ca.clcknads.pro/v2/a/vsl/vst/23411?subId=&playerWidth=426&playerHeight=239&pageUri=http%3A%2F%2Fwww.javdl.co%2F&referer=&wgl=0&abl=0
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23411/js
Protocol
HTTP/1.1
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e9bd30be38dc5c5df479d7f162b96ea6a493855963341942381476fad973e652

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/
Origin
http://www.javdl.co

Response headers

Date
Wed, 08 May 2019 20:13:28 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/xml; charset=UTF-8
Access-Control-Allow-Origin
http://www.javdl.co
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
preroll.engine
engine.phn.doublepimp.com/
27 B
367 B
XHR
General
Full URL
https://engine.phn.doublepimp.com/preroll.engine?id=aa101eb7-1e9c-45b7-9a18-e4c9e6b484eb&zid=10310&cvs=&time=&stdtime=&abr=&pageurl=https%3A%2F%2Fclickaine.com&subId=&tid=&res=&bw=&bh=&kw=&referrerUrl=&pw={PlayerWidth}&ph={PlayerHeight}
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23411/js
Protocol
H2
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
69.89.69.121 El Segundo, United States, ASN558 (NNEXT - NV Next LLC, US),
Reverse DNS
Software
Microsoft-IIS/10.0 / ASP.NET
Resource Hash
a71702232a771b558b12f8c0012a15f5652b500fd2e33464d283406cee36754d

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/
Origin
http://www.javdl.co

Response headers

date
Wed, 08 May 2019 20:13:27 GMT
content-encoding
gzip
server
Microsoft-IIS/10.0
status
200
x-powered-by
ASP.NET
vary
Accept-Encoding
p3p
CP="CAO PSA OUR IND"
access-control-allow-origin
http://www.javdl.co
cache-control
private
access-control-allow-credentials
true
content-type
text/xml; charset=utf-8
content-length
144
23411
ca.clcknads.pro/v2/a/vsl/vst/
0
294 B
XHR
General
Full URL
http://ca.clcknads.pro/v2/a/vsl/vst/23411?subId=&playerWidth=426&playerHeight=239&pageUri=http%3A%2F%2Fwww.javdl.co%2F&referer=&wgl=0&abl=0&resell=1
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23411/js
Protocol
HTTP/1.1
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/
Origin
http://www.javdl.co

Response headers

Date
Wed, 08 May 2019 20:13:28 GMT
Referrer-Policy
unsafe-url
Server
nginx
Access-Control-Max-Age
86400
Content-Type
text/plain; charset=utf-8
Access-Control-Allow-Origin
http://www.javdl.co
Access-Control-Allow-Credentials
true
Connection
keep-alive
23411
ca.clcknads.pro/v2/a/vsl/vst/
3 KB
2 KB
XHR
General
Full URL
http://ca.clcknads.pro/v2/a/vsl/vst/23411?subId=&playerWidth=426&playerHeight=239&pageUri=http%3A%2F%2Fwww.javdl.co%2F&referer=&wgl=0&abl=0&remnant=1
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23411/js
Protocol
HTTP/1.1
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
6795401a104ec5d26f369fdb5e8d55d59ccbd0b537702e4ab65087e10e8dc755

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/
Origin
http://www.javdl.co

Response headers

Date
Wed, 08 May 2019 20:13:29 GMT
Content-Encoding
gzip
Referrer-Policy
unsafe-url
Server
nginx
Vary
Accept-Encoding
Content-Type
application/xml; charset=UTF-8
Access-Control-Allow-Origin
http://www.javdl.co
Access-Control-Max-Age
86400
Access-Control-Allow-Credentials
true
Connection
keep-alive
Transfer-Encoding
chunked
10002088
a.adtng.com/get/
5 KB
6 KB
XHR
General
Full URL
https://a.adtng.com/get/10002088?time=1542901188867&apb=Al5DS0ULCJKCufy7N_-c9dDk-QDoDWXhbx9ess1toSiZLYf55tPGUqS8meqhWLyO91h5rNRUs3p2D5M-jweVx1WLFweD0Rh8UctHbXZclHpVipemV1rtUePateijL4w9WuB5BNdV1jcwqVnbkhs8
Requested by
Host: ca.clcknads.pro
URL: http://ca.clcknads.pro/v1/a/23411/js
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
216.18.168.166 Waltham, United States, ASN29789 (REFLECTED - Reflected Networks, Inc., US),
Reverse DNS
Software
openresty /
Resource Hash
611e8b30e803c9ce8ffa43cb2c8291f38c20995e5f7fd405763a140585fe2ee2

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Referer
http://www.javdl.co/
Origin
http://www.javdl.co

Response headers

Date
Wed, 08 May 2019 20:13:29 GMT
Server
openresty
Transfer-Encoding
chunked
Access-Control-Allow-Methods
GET
Content-Type
application/xml
Access-Control-Allow-Origin
http://www.javdl.co
Cache-control
private
Access-Control-Allow-Credentials
true
Access-Control-Allow-Headers
Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With
878293_video_with_sound.mp4
hw-cdn2.contentabc.com/a7/creatives/54/607/802823/878293/
32 KB
0
Media
General
Full URL
https://hw-cdn2.contentabc.com/a7/creatives/54/607/802823/878293/878293_video_with_sound.mp4
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
205.185.208.78 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip078.ssl.hwcdn.net
Software
/
Resource Hash

Request headers

Referer
http://www.javdl.co/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=0-
chrome-proxy
frfr

Response headers

Date
Wed, 08 May 2019 20:13:29 GMT
Last-Modified
Fri, 08 Mar 2019 20:56:35 GMT
Access-Control-Allow-Origin
*
ETag
"1552078595"
X-HW
1557346409.dop056.lo4.t,1557346409.cds076.lo4.shn,1557346409.dop056.lo4.t,1557346409.cds039.lo4.c
Content-Type
video/mp4
Content-Range
bytes 0-4453485/4453486
Cache-Control
max-age=10776522
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
4453486
truncated
/
2 KB
0
Image
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Type
image/png
truncated
/
715 B
0
Image
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd

Request headers

User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Content-Type
image/png
impression
a.adtng.com/vast/
0
355 B
Image
General
Full URL
https://a.adtng.com/vast/impression?a2cid=eyJwaWQiOiI2MDciLCJzaWQiOiIxMDAwMjA4OCIsIm5pZHMiOiIzMzM3OCwzNTU0NyIsImNyaWQiOiI4NzgyOTMiLCJzdiI6IjMiLCJ0c25hbWUiOiJBRkYiLCJjcmMiOiIyOCIsImNuIjoiUFJFUk9MTF8xOTIwWDEwODBfVEFfVEVTVCIsIm5pZCI6IjM1NTQ3IiwiZXh0X3B1YiI6IiIsImNycCI6IjYuMjUiLCJ0aWQiOiIyIiwiaXQiOiIwOFwvTWF5XC8yMDE5OjIwOjEzOjI5ICswMDAwIiwiY2MiOiIzIiwic25jaWQiOiI0NjY1NyIsImNpZCI6IjI2MTQ5IiwiZXh0X3VpZCI6IiIsImNwIjoiMjMuMDgiLCJzbmNjaWQiOiIzNzE0OTYiLCJpaWQiOiJhMWQzNzE3NzFjNzc1M2I5YmNmOWM5ZDIyNGMyZjQ0NSIsImV4dF9paWQiOiIifQ==
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
216.18.168.166 Waltham, United States, ASN29789 (REFLECTED - Reflected Networks, Inc., US),
Reverse DNS
Software
openresty /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Date
Wed, 08 May 2019 20:13:29 GMT
Access-Control-Allow-Credentials
true
Server
openresty
Access-Control-Allow-Headers
Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Requested-With
Transfer-Encoding
chunked
Access-Control-Allow-Methods
GET
Content-Type
text/html
878293_video_with_sound.mp4
hw-cdn2.contentabc.com/a7/creatives/54/607/802823/878293/
61 KB
62 KB
Media
General
Full URL
https://hw-cdn2.contentabc.com/a7/creatives/54/607/802823/878293/878293_video_with_sound.mp4
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
205.185.208.78 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip078.ssl.hwcdn.net
Software
/
Resource Hash
f2211429d2f815e90c58f0a1a79df495229ac3196815ba703df83de2bf435e83

Request headers

Referer
http://www.javdl.co/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=4390912-

Response headers

Date
Wed, 08 May 2019 20:13:29 GMT
Last-Modified
Fri, 08 Mar 2019 20:56:35 GMT
Access-Control-Allow-Origin
*
ETag
"1552078595"
X-HW
1557346409.dop013.lo4.shc,1557346409.dop013.lo4.t,1557346409.cds039.lo4.c
Content-Type
video/mp4
Content-Range
bytes 4390912-4453485/4453486
Cache-Control
max-age=10776522
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
62574
878293_video_with_sound.mp4
hw-cdn2.contentabc.com/a7/creatives/54/607/802823/878293/
4 MB
0
Media
General
Full URL
https://hw-cdn2.contentabc.com/a7/creatives/54/607/802823/878293/878293_video_with_sound.mp4
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_RSA, AES_128_GCM
Server
205.185.208.78 Phoenix, United States, ASN20446 (HIGHWINDS3 - Highwinds Network Group, Inc., US),
Reverse DNS
vip078.ssl.hwcdn.net
Software
/
Resource Hash

Request headers

Referer
http://www.javdl.co/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
Range
bytes=32768-

Response headers

Date
Wed, 08 May 2019 20:13:29 GMT
Last-Modified
Fri, 08 Mar 2019 20:56:35 GMT
Access-Control-Allow-Origin
*
ETag
"1552078595"
X-HW
1557346409.dop013.lo4.shc,1557346409.dop013.lo4.t,1557346409.cds039.lo4.c
Content-Type
video/mp4
Content-Range
bytes 32768-4453485/4453486
Cache-Control
max-age=10776522
Connection
Keep-Alive
Accept-Ranges
bytes
Content-Length
4420718
imp
ca.clcknads.pro/v2/a/vsl/
0
493 B
Image
General
Full URL
http://ca.clcknads.pro/v2/a/vsl/imp?d=Al5D69pha3KFpcR-CzlBBB5mV-6S8_5H83HWdv_rZDlDWugHOcokzG2c8u_rSSsUZ_iI9oquOQALlB0ZkRep--SJ36rXU_B_Iu7l15wAfpV079fbvQXqF4sQabusFKVdIPq4j_ycTCtzvMcO0exFqmX96TRulkcAfswZjewWrxSldCDCWkIGc9s9ZASpko3PsIXEPey_jLxgAQcFKgyQmbEiXvXtbqDRerLScA0sdAXn22RR69WeDKbnO0sgUp3DftGJm3NfymaQVgUKkPjbu2jZwgWMOFaTWGj70iS2iVo5IbaonQiQU0RBlyB0Uwre_KIuKWmPxmmd_9e0ahaik2jumu1aefv87Yt8gM7JFBwt3ryYAsWYzehncX1iReq_7VnFTU8xHx4LxPGmKFn3Flxoloiyoktfr1Xa7Pp2S1tTefuiyDRI7bPDmpGJZIEI7v1ihMJRMMwDLm6qSKNGgj4XXbG20gu3m6oQoAgURgW6HrYSR6HikDxrMPkwxeGQfC_3GHxhiluJeHomva6eVM4vCfwWd9wYxHmVzbKrFYgtZU6X1LZbT3fTwxoNDxEtoutJECoFymBYVs5ntUUHGUDQrwbJBvRZEqhRSqQo7q3vDStPZOaQ6Y71X61H9sSD5A11TYOB8VS3DHGYGl1TswRec4mq_lBUxCtBJjTkG8djApmu0tV1a1yA22JDENvR7ETnVlKyzDEmDX3Y7qlnzGi72he_POXHE3ch-cqIXXpkcTHTEwrB9iV34CPTtc8XKqoI1rVqfr6ovBM6OzaCbpn-A0RNvMn4nGv5BtCUX9qVLRkMusQM0a2w7ELrrjD3Zrfi6ateP5xbXY1psXPYwsrbZd0DDacqJ8DCQtsfsPqji7pILAx4XeV0_TcZKcdi5HHilOG19HJv-_VTZzHq83bqt7ZCXx35WVR4BqVR86eR-5YP1ubTl5OfdPligMi5w8i59C1hXYkPCg6wYVmeaxZtrke_780HdFWsTsvB2ZBpD-ltJDB9IVj09KxRDklKSTgGYUTVhRM--dbd8TLtytjcAIpiuH8-6JSfLyoLAZZg_bW8r3dUDH2fuGbP47xCmxCq0F0JMR_q8Wfd-3k
Protocol
HTTP/1.1
Server
88.208.59.71 , Netherlands, ASN39572 (ADVANCEDHOSTERS-AS, NL),
Reverse DNS
Software
nginx /
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Pragma
no-cache
Date
Wed, 08 May 2019 20:13:29 GMT
Referrer-Policy
unsafe-url
Last-Modified
Wed, 08 May 2019 20:13:29 UTC
Server
nginx
Access-Control-Max-Age
86400
P3p
CP="NOI DEVa TAIa OUR BUS UNI STA"
Access-Control-Allow-Origin
*
Cache-Control
private, no-cache, no-store, must-revalidate, max-age=0
Access-Control-Allow-Credentials
true
Connection
keep-alive
Content-Type
text/plain; charset=UTF-8
Expires
Wed, 08 May 2019 20:13:29 UTC
events
etahub.com/
0
0
Image
General
Full URL
https://etahub.com/events?app_id=10925&eventName=VAST_START&nspot_id=10002088&nspot_node_id=35547&nspot_node_campaign_creative_id=371496&ncampaign_id=26149&ncreative_id=878293
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
216.18.168.26 Waltham, United States, ASN29789 (REFLECTED - Reflected Networks, Inc., US),
Reverse DNS
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Access-Control-Allow-Credentials
true
Access-Control-Allow-Methods
GET, POST
events
etahub.com/
0
0
Image
General
Full URL
https://etahub.com/events?app_id=10925&eventName=VAST_FIRST_QUARTILE&nspot_id=10002088&nspot_node_id=35547&nspot_node_campaign_creative_id=371496&ncampaign_id=26149&ncreative_id=878293
Protocol
HTTP/1.1
Security
TLS 1.2, ECDHE_ECDSA, AES_128_GCM
Server
216.18.168.26 Waltham, United States, ASN29789 (REFLECTED - Reflected Networks, Inc., US),
Reverse DNS
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

Referer
http://www.javdl.co/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36

Response headers

Access-Control-Allow-Credentials
true
Access-Control-Allow-Methods
GET, POST

Verdicts & Comments Add Verdict or Comment

46 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| GoogleAnalyticsObject function| ga string| ad_idzone string| ad_width string| ad_height function| getParameterFromUrl string| p number| dt string| exoDocumentProtocol string| ad_sub string| ad_sub2 string| ad_sub3 string| ad_tags string| ad_notify string| ad_el string| ad_type string| ad_screen_resolution object| google_tag_data object| gaplugins object| gaGlobal object| gaData function| $ function| jQuery function| Tether string| uid string| wid string| popns object| IOarzRhPlP function| B2BB number| T42 number| H42 number| w0CCCC function| EkZ9B function| _cl8845endfxnksxei9gqwb undefined| miner function| i333 function| f5yy string| _DfIrLoGdmy6vdQOr object| UmDWe9Dn8Fr2nKAs function| cIPop function| PPFLSH15573464083700a4918483094353474click function| onClickTrigger boolean| zfgloadedpopup

8 Cookies

Domain/Path Name / Value
.exoclick.com/ Name: __uvt
Value: a%3A1%3A%7Bi%3A0%3Bs%3A33%3A%225cd33867d96a04.785480562108369430%22%3B%7D
.exoclick.com/ Name: impressions
Value: x%9C%7D%CC1%0E%800%0CC%D1%BBtGj%E24i%DD%D30vfD%BD%3BE%C0%CA%E0%E5K%7E%3B%95%E7Aq%26%88%19%3C6%88%2B%1A%90%FAN%F0%1C%CC%7DP%BE%95%12%B0%D2%E2%8E%DA%0F%1A%D3%FA%E5%D4%E7%A3%28%A4%D6%F0M3%B4%B5%A8%3F%8A%5B%8EW%C1R%F4F%E6%05%E9R%22%F4
.www.javdl.co/ Name: __PPU_BACKCLCK_1169611
Value: true
www.javdl.co/ Name:
Value: __test
.javdl.co/ Name: _gat
Value: 1
.javdl.co/ Name: _gid
Value: GA1.2.285343981.1557346408
.javdl.co/ Name: _ga
Value: GA1.2.675938057.1557346408
.javdl.co/ Name: __cfduid
Value: dd6aa3327922c7824ca8343577637e0501557346407

53 Console Messages

Source Level URL
Text
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Popunder Script @ popunderjs.com
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Author:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Version:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
Release:
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
111
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
[License]
console-api log URL: http://cdn.popcash.net/pop.js(Line 5)
Message:
[License]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
console.clear
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(Line 1)
Message:
[object HTMLDivElement]
console-api log URL: data:text/plain;base64,d2luZG93Ll9EZklyTG9HZG15NnZkUU9yID0gJ1VtRFdlOURuOEZyMm5LQXMnO2kzMzMuZzY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307ZnVuY3Rpb24gaTMzMygpe31pMzMzLng1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5lMj09PSdmdW5jdGlvbic/aTMzMy53NS5lMi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5lMjt9O2kzMzMuSDI9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLlEyLmUyPT09J2Z1bmN0aW9uJz9pMzMzLlEyLmUyLmFwcGx5KGkzMzMuUTIsYXJndW1lbnRzKTppMzMzLlEyLmUyO307aTMzMy5iNT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUuVDY9PT0nZnVuY3Rpb24nP2kzMzMudzUuVDYuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUuVDY7fTtpMzMzLmU1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5yNT09PSdmdW5jdGlvbic/aTMzMy53NS5yNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5yNTt9O2kzMzMucTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnc1LmUyLmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1LmUyO307aTMzMy5RMj1mdW5jdGlvbigpe3ZhciBvMj1mdW5jdGlvbihkMixTMil7dmFyIEEyPVMyJjB4ZmZmZjt2YXIgRTI9UzItQTI7cmV0dXJuKEUyKmQyfDApKyhBMipkMnwwKXwwO30sczI9ZnVuY3Rpb24oYzIsSjIsaDIpe3ZhciBDMj0weGNjOWUyZDUxLHQyPTB4MWI4NzM1OTM7dmFyIFQyPWgyO3ZhciBPMj1KMiZ+MHgzO2Zvcih2YXIgVjI9MDtWMjxPMjtWMis9NCl7dmFyIGkyPWMyLmNoYXJDb2RlQXQoVjIpJjB4ZmZ8KGMyLmNoYXJDb2RlQXQoVjIrMSkmMHhmZik8PDh8KGMyLmNoYXJDb2RlQXQoVjIrMikmMHhmZik8PDE2fChjMi5jaGFyQ29kZUF0KFYyKzMpJjB4ZmYpPDwyNDtpMj1vMihpMixDMik7aTI9KGkyJjB4MWZmZmYpPDwxNXxpMj4+PjE3O2kyPW8yKGkyLHQyKTtUMl49aTI7VDI9KFQyJjB4N2ZmZmYpPDwxM3xUMj4+PjE5O1QyPVQyKjUrMHhlNjU0NmI2NHwwO31pMj0wO3N3aXRjaChKMiU0KXtjYXNlIDM6aTI9KGMyLmNoYXJDb2RlQXQoTzIrMikmMHhmZik8PDE2O2Nhc2UgMjppMnw9KGMyLmNoYXJDb2RlQXQoTzIrMSkmMHhmZik8PDg7Y2FzZSAxOmkyfD1jMi5jaGFyQ29kZUF0KE8yKSYweGZmO2kyPW8yKGkyLEMyKTtpMj0oaTImMHgxZmZmZik8PDE1fGkyPj4+MTc7aTI9bzIoaTIsdDIpO1QyXj1pMjt9VDJePUoyO1QyXj1UMj4+PjE2O1QyPW8yKFQyLDB4ODVlYmNhNmIpO1QyXj1UMj4+PjEzO1QyPW8yKFQyLDB4YzJiMmFlMzUpO1QyXj1UMj4+PjE2O3JldHVybiBUMjt9O3JldHVybntlMjpzMn07fSgpO2kzMzMuczY9ZnVuY3Rpb24oKXt2YXIgZTY9Mjtmb3IoO2U2IT09MTspe3N3aXRjaChlNil7Y2FzZSAyOnJldHVybntUNjpmdW5jdGlvbihZNil7dmFyIGQ2PTI7Zm9yKDtkNiE9PTE0Oyl7c3dpdGNoKGQ2KXtjYXNlIDU6ZDY9TzY8bDYubGVuZ3RoPzQ6NzticmVhaztjYXNlIDI6dmFyIEY2PScnLGw2PWRlY29kZVVSSSgiJiU1RC01NHQlMjAlNUU0LiRSIUc6JTE1K0UoVjA/I0QxQCEtLEksXy0kJEMxJTVCMDU6RDF1OjIlM0VYP00qNCdVKkE6JTFFJTNFVj1UITU0VC5HJyk0JTYwJiU1RCUyMC49SSUxRiU1QzQ0JFMqQToxJTI1RzolNUQlMjAkOEklMDJUOiUwNyZWKE0rLzRUOkE2JCRDMXE9PyUyNUEqQSUyMi0lMjVAMUMrKCRDKkE6JTAwJFM9JTVDLSUyNTRmOlYxJC5JJlU6NSNaKk0lMTQzJTI1Ry5UJTI1NSNYIU0lMEQvJTNFUj1FJTI1LTRfJlclMjAkJEktRjA1JTI1WTElNjAnMyNHO00pKCRJPyU1QzcoJTNFJTVFJTIwJTVEOiUxRSUzRSU1RSUyMlYrNCUzRWgxfiUyNTUlMjJJJTAyTS0vLlI3TSUwQS00JTE0MV8rJTIyK0MmJTVDKj8lMDdYOkAhPyUwOSUwRTFsJi0rWSRNZT8uWCUyMlItLzRVLlAvJjhYOiU1RCUyMD8vTz9aNiQ5SXRNdXR6SShWMD8pWCFVLSY0ZSpUOi8lMjVDMVklMjU3K0QsQS0xJTNFSSUwMVknLCZAK002JCUzRUI9JTVEOjQ0RytVOiUxMy8lNUIqUjckNGIlMjUlMDc6JTIyJTI1QSpBOiUxODpJeiUwMzolMjIlMjJWIVQhJTI1NEAqUS8oJTNFSSUyMFUlMjIyL0MxJTdGdHQlMjJVMU86JTE4J1gjTSsvKCU1QjpBOjo0ZCpfISUyMiUzRVg9TSUwMTk6SWdvNz1uJTFFMWQlM0MtKSU1RDglMEI6MiUzRUUmJTVEIz86Vj1AIT8lMDlCPUEhLyUzRUklMURNLS8kUj1NJy0jVCRNJTE1JTIyJyUwRSRXOnB5SSUxRiU1RTolMDAtSSUzQ0EnPyUxQSU1RDFnKz9zJTBFdiUwQTpoNG4lMjIlNUM9PyUwRE8jTTcxJiU1RTtNJTAyKDhSMUEhMiNNLlEoJDR0KCU1RDolMEU6UiFNLDUnJTVCMUMxMiUyMkkrVjI/JTNFRS4lNUQ3MStFKiU1RDA/JTFDTTElNjAwLjhWKFY6JTE1M0cqQDooJ0klMTUlMDE6IyUyNVgjViUyNS80dSYlNUQlMjA/JTAzUzElMDY6My9aJTIwRSE/KCU1QjpBOi4oJTVEKlAwPywlNUUhWjcpNCUwQjF6MCQnST9BLS8lM0VJJTFGTSclMjAkVCpfOiUwNS9VOlQ6MytZKyU1Qyk/JTA0JTVCLFo6JyNFKk0lMDU2NGMlM0NDOiQyJTVFO00lMTI/ZkklMEMlNUMqJyNQMWRxKiglMDUxUjolMjA6RyNKOiUyMiUyNVgkWiE/JTExSSUxQiU1QzElMjIlMjJSJTNDTS0mJFg9VjoxJTI1RzElN0Z1Py4lNUUlM0NDJTI1NSlfMXQ6MTJJOyU1QystKFY9TTQlMjAlM0VfMSUwRTolMjAoRDFQKyw0WiUyMFEtLS9JJTIyUiUzQz8kQiNfOi4kWiUyMEY3JCdYOVY6cTpPMSUxRDouJlMxaTolMTh5SSUwNUInOCU3RiU1RC0lMDF0MTR5Lk0lMEY/eEkhUjIoLVY7JTVDNj8lMDhAMSU1RCsvL0klM0VGITMzSSUzQ1A2KDpDMUEhMi9DMXYjP2FJK1YyKClSMXk1PyUxRVYoTSUxNC46SSUwQUs0KDhSJTNDTTAlMjAoSShWKy0lMjVULkctLiRJLSU1QyUyMDg0UTolNUQnNSNYIU0lMDctI1QkViUyMD8lMEJYLE0lMDgsNEI9XzonJlglMjBBOiUwMiUyNVkoTSUxNiQrVCdWJTIwPy5SLCU1QyUyMCQ0Vi0lNUMxNTRoJTNDVignNFYpRyEzNGclMjBALTUjWCFNJTBEJiRYPVY6NThOMVY3JTIyK0cqTTAlMjAoQj9NJTIyKDJSK00lMDAuJ1YmJTVEOiUwMiUyMiU1RSNXOjIlMjIlNUUpRzolMDM/VS1fIT86WD9GND8lMUFSPSU1RS0yOSU1RSUyMCU1RDozL0Q7JTVDNiQ0WCFQKCgpJTVDMUQ2KCUzRVIxRSUyNTM0UypALzUlMjVHMXEhJyUyNUUqTSUxM3QhSSUwMEUhMyZWNk0lMDgoLlQxJTEzOi0lMjVQMSU1QiUyNS8uJTVCKlc6JTA5LyU1RSglNUIwPzlSI1YnNSUyNUUxUiYyJTI1JTVCOkchPyUxQV8uJTVEOjUlMjVCLCU1QiEvLkklMTBsJTIwJCwlNUUhVjolMTAtSSUwQ00qJTIwJ1IxJTFFOiUyMiZWJTNDQDosL0QlM0NSIyQ0JTdCJkAwJCRSPU0xLy5SKVoqJC5JJTE3TWY/JTE5JTVFLV8tLy1JLF8hJTIwOEklMUZZcS0oWjFjITM6VihWOiQmRCpNdXF6SSUwRFYwNS9FMVoqP3glMDd+JTBBOiUwMTR5LiU1RSE/JTFGSSUwNFc6JTAwLVUlN0RNbCUxRjZrJTNDJTFBOiUwNC5QKk11PzpSPUMlMjUmL0klMjBDMDI0cHZEJTIwPzRfKlIlMjA/OlY9Vio1NGUqVSEzL0UxJTVCKzIlM0VJOFolMjA1JTIySTpAIWE5Qz1aJzU0ZyUyMFoqNTR4KU0lMTAoJ1IxdigkJ1IhRzc/OFIlM0VGITIlM0VJP0EhNy9ZO00wJTIwLUklMDlaNiQsWDdNJTA4JTIwOUMxJTdDNDUjWCFAOjMvRyNSJyQ0WiUyMEY3JC5YOCU1RDojI1krTSkkJTNFVjFSJiUyMi5SKVQsKCUyMCU1QyMlNUUqLjpGPUAwNCUzQ0A3SiUzRT8mUiFUMCk0VCUyMCU1RDAlMjApQzElNjAwJTIwJ0cxJTAydT8lMEQlMEUmUi42ckklMDZVNiUyMCdSMSU3Ri0vP08xQyUyNSYvSSUwMlInPyUwMEklMEFFIS8lM0VEMXI2MytOMSU1RSEzLVIxJTdDJisvVDtNJTI1MTolNUImUCUyNTUjWCFNJTA2KTQlN0IxYTI/JFI7RCszIUklMDdaLiUyMCklNUMmJTVEIz8lMTlDPVoqJjRHJTIwQDA/JTE2JTFGJTEzJTFBJTE4MiU2MEwlMTNAbiUxRCUxMWslM0MlMTkqJTIwJTNFJTVFOVZkJTIyJTI1UypvN2slMTZqJTEzQG4lM0M0JTdEJTNDTSUwMjMlMjVaMSU3Ris2L0UxJTdGISclM0VJKSU1Qyc0OUklMUQlNUImPylWI186JTI1L0MuUCw/JlguVzolMEU0JTEzMSUwMXQ/JTIyRSpVOiUwMiUyNUIhRzolMjI/RSUzQyU1QzY/OVYpVjo1L087TSUwMjQmJTVCJTNDUDYkL1kxVyEtK04xJTVFKzQ5UjpDOjs0Zy5BIS8lM0VJJTFDUiUyMiUyMDglNUUxJTA1dCR5STtSJjQkUypBOiUwNnMlNUUuWToyP1UlM0NHNj8lMDlYJTIyQyUyNTMvSSUwQyU1QysqI1IxdTcmNCU1QiUyMFAlMjUtNFI3Vic/JTA3WDVaKC0rSSUyMEYwJDhJJTFBRy0tOUk9VjcoMFIxUiUyMCUyNTQlN0Q5UXc/JTBFSSUxMU03KSUyNUIjVzolMTMjJTA3N003JTIyOFgjXyYlMjA4RDFXISM/UDElNUIlMjUyNFI5Vio1OUkjViUyMjU0RSpfISUyMDlSMVIxNSUyMlg9TSUxNz85VD1WIS80ZSZNJTA5LiglNUUjVjokJFYtXyElMjU0cCpHMCQ4aCUxME0lMDU7NGI/QyEzNEU6JTVEOiUwN3pJJTNDXy0lMjIvSSUxQiU1QzQ/JTYwSThNIT83SSUxRl8xJiNZMUYqIyNZK00wJTIwOFAqRzokJ0c7SjolMjI0WSpEOjUlMjVCLCU1Qjc1K0U7TSUwQi8mWC5XOiUyNSNBMSU1RSUyNTUpXzElNUM2KC0lNUUhTSUwNj8lMDRYO1olMjIoKVY7WisvNFoqJTVEMSMrRTFlITM5JTVFJTIwJTVEOiUwQjpUMXIoLTR0JTIwVyE/JTFFVi1NJTBFKStJLkM0JCRTMSUxQzolMDAtUiFHOiUwRSRUKk0lMTMoLkMnTSUxNyw0cypVJTI1NCZDMVoqMi9FO00lMDk4NFMlMjBQMSwvWTtNJTBEJjRmOk0lMDU1JTNFRSZRMTUvSSUxQ0clMjUlMjIhSSUwQkQyPyUwN1IlM0NAJTI1Ji9JJTFCTSUwNTcrJTVFI1ImLS9JJTIyWDQ/OFMxXysvLUklMDMlMDM0KS5aMVU2JTIwJ1IxJTVFKzcvSSwlNUIlMjUzNFklMjBXIT8lMDlWJTNDVjolMDgkUypLOiUxNz9JJTE2TS0lMjU0cS5fKCMrVCRNJy4kRCUyMF8hPzlDNl8hPyUxQUUlMjBDITMlM0VOMX4rJTI1L0l2JTBBJTdEeHMlMEV2TSUxMTg0VS5AIXd+SXVNJTAyKDhSK00lMDN4JEklN0ZNJTAyczRBJkAtIyMlNUImRz0/KCU1Qi4lNUQvPz0lNUUhVys2NGoxcjA/JTA4RSUyMEQ3JDhJLkcwMyNVOkchMjR5MWopLnJJPVYlMjIkOEUqQToyOlIsWiUyMigvUzFxMj8/RCpBOiUxNSNaKiU1QzE1NEM9WicqOUklMDElNUMlMjAkNEEqQTcoJTI1WTFDNi4lM0VYO0o0JDQlNUUpQSUyNSwvSSElNUM6JTBEJTIwSSxBISUyMCUzRVIxJTVEKzMvUTFBJTI1Ly5Jak0lMTApK1knTSUwMS0vWiolNUQwPyUwNUcqJTVEITM0ZColNUQ3KCUzRSU1RTlWOjQkUypBOiUxNStQJTNDTSUxMygkSSUyMlopJDRiPV86aTRTLiU1RCckNFY7RyUyNSUyMiUyMkk7Vjc1NEc7UCsvLUklMjUlNUMtLzRiKE0nLSUyNUQqTSUxNyUyMjhYI18mJTIwOEkmTSUwRXE0cy5HIT8jWT9GMD8lMjVHKiU1RDolN0Y0fjF1MS8pQyYlNUMqPzpYP0YqJTI1L0UlMjVAOiUyMiUyNVk7Vio1NHYhUCwuOEklMDBEKj8lMDlfPSU1QykkNCU3RjElNUM0JCRSPU0wLjRyOVYqNTRDNkMhPyUwQkklM0NWMD8lMUZSMWMlMjU1JTIySSpfISwvWTtNJTA2LStZJE0mJCxYPVY6JTAwP0MnJTVDNj8lMDglNUIxQDAlMjAlM0VCJTNDTSUyMCg5RyNSPT8lMURJJTA3VywlMjA0eD9WNiUyMDRfKlojKSUzRUklMTlSKDQvSSUwQU0lMTU/KVghUCUyNTU0JTYwKlEvKCUzRUklMUElNUQlMjAkOEkhViUzQzU0UypAMDMlMjVOMSU3RismLVI9TSUwMjI0fiFHOiUyNStDLk0lMDUuNEMlMjBDIik7ZDY9MTticmVhaztjYXNlIDk6RjYrPVN0cmluZy5mcm9tQ2hhckNvZGUobDYuY2hhckNvZGVBdChPNileWTYuY2hhckNvZGVBdChSNikpO2Q2PTg7YnJlYWs7Y2FzZSA0OmQ2PVI2PT09WTYubGVuZ3RoPzM6OTticmVhaztjYXNlIDE6dmFyIE82PTAsUjY9MDtkNj01O2JyZWFrO2Nhc2UgMzpSNj0wO2Q2PTk7YnJlYWs7Y2FzZSA4Ok82KyssUjYrKztkNj01O2JyZWFrO2Nhc2UgNzpGNj1GNi5zcGxpdCgnficpO3JldHVybiBmdW5jdGlvbihoNil7dmFyIFY2PTI7Zm9yKDtWNiE9PTE7KXtzd2l0Y2goVjYpe2Nhc2UgMjpyZXR1cm4gRjZbaDZdO2JyZWFrO319fTticmVhazt9fX0oJ08zREFKNycpfTticmVhazt9fX0oKTtpMzMzLnIyPWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy5RMi5lMj09PSdmdW5jdGlvbic/aTMzMy5RMi5lMi5hcHBseShpMzMzLlEyLGFyZ3VtZW50cyk6aTMzMy5RMi5lMjt9O2kzMzMueTU9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnc1Lms1PT09J2Z1bmN0aW9uJz9pMzMzLnc1Lms1LmFwcGx5KGkzMzMudzUsYXJndW1lbnRzKTppMzMzLnc1Lms1O307aTMzMy5ENT1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMudzUucjU9PT0nZnVuY3Rpb24nP2kzMzMudzUucjUuYXBwbHkoaTMzMy53NSxhcmd1bWVudHMpOmkzMzMudzUucjU7fTtpMzMzLlE1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5rNT09PSdmdW5jdGlvbic/aTMzMy53NS5rNS5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5rNTt9O2kzMzMueTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LmUyPT09J2Z1bmN0aW9uJz9pMzMzLnM2LmUyLmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LmUyO307aTMzMy5MNj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGkzMzMuczYuZTI9PT0nZnVuY3Rpb24nP2kzMzMuczYuZTIuYXBwbHkoaTMzMy5zNixhcmd1bWVudHMpOmkzMzMuczYuZTI7fTtpMzMzLmM1PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgaTMzMy53NS5UNj09PSdmdW5jdGlvbic/aTMzMy53NS5UNi5hcHBseShpMzMzLnc1LGFyZ3VtZW50cyk6aTMzMy53NS5UNjt9O2kzMzMudzU9ZnVuY3Rpb24objUpe3JldHVybntrNTpmdW5jdGlvbigpe3ZhciB1NSxoNT1hcmd1bWVudHM7c3dpdGNoKG41KXtjYXNlIDY6dTU9aDVbMV0raDVbNl0raDVbNV0raDVbOV0rKGg1WzddK2g1WzExXStoNVs0XStoNVsyXStoNVswXStoNVs4XStoNVszXSkraDVbMTBdO2JyZWFrO2Nhc2UgNTp1NT1oNVsxMF0rKGg1WzExXStoNVsxMl0raDVbMl0raDVbMV0raDVbMF0raDVbOF0raDVbN10raDVbNl0raDVbNF0raDVbNV0raDVbMTNdK2g1WzNdK2g1WzldKTticmVhaztjYXNlIDI6dTU9aDVbMF0raDVbMV07YnJlYWs7Y2FzZSA0OnU1PWg1WzFdK2g1WzJdK2g1WzBdO2JyZWFrO2Nhc2UgNzp1NT1oNVsxXT09PWg1WzBdO2JyZWFrO2Nhc2UgMTY6dTU9aDVbMTJdK2g1WzldK2g1WzddK2g1WzE0XStoNVsyXStoNVs4XStoNVs1XStoNVszXSsoaDVbMTVdK2g1WzEzXStoNVs0XStoNVs2XStoNVswXStoNVsxMF0raDVbMV0raDVbMTFdK2g1WzE2XSk7YnJlYWs7Y2FzZSAxMjp1NT1oNVszNl0raDVbMzNdK2g1WzJdK2g1WzE5XStoNVszNV0raDVbMjFdK2g1WzM0XStoNVsyN10raDVbMjldK2g1WzIzXStoNVsxOF0raDVbMzhdK2g1WzVdK2g1WzIwXStoNVsxNl0raDVbMzFdK2g1WzI2XStoNVsxNV0raDVbMjRdK2g1WzEwXStoNVs4XStoNVsyMl0rKGg1WzZdK2g1WzE0XStoNVszN10raDVbMjVdK2g1WzBdK2g1WzRdK2g1WzEyXStoNVs5XStoNVsxM10raDVbMTFdK2g1WzMwXStoNVszMl0raDVbM10raDVbMTddK2g1WzI4XStoNVsxXStoNVs3XSk7YnJlYWs7Y2FzZSAxMDp1NT1oNVswXTxoNVsxXTticmVhaztjYXNlIDA6dTU9aDVbNV0raDVbMTBdK2g1WzRdK2g1WzFdK2g1WzddK2g1WzNdK2g1WzZdK2g1WzJdK2g1WzBdK2g1WzldK2g1WzE0XStoNVs4XStoNVsxMV0raDVbMTJdK2g1WzEzXTticmVhaztjYXNlIDM6dTU9aDVbNF0rKGg1WzBdK2g1WzJdK2g1WzVdK2g1WzFdK2g1WzNdKTticmVhaztjYXNlIDE0OnU1PWg1WzBdK2g1WzddK2g1WzNdK2g1WzJdK2g1WzFdK2g1WzRdK2g1WzZdK2g1WzVdK2g1WzhdO2JyZWFrO2Nhc2UgMTg6dTU9aDVbMl0laDVbMV0taDVbMF07YnJlYWs7Y2FzZSAxOTp1NT0oaDVbMV0taDVbMF0pKmg1WzJdO2JyZWFrO2Nhc2UgMTE6dTU9aDVbMV0raDVbNV0raDVbM10raDVbNF0rKGg1WzJdK2g1WzZdK2g1WzBdKTticmVhaztjYXNlIDE6dTU9aDVbMF0raDVbMV0raDVbM10raDVbNF0raDVbMl07YnJlYWs7Y2FzZSAyMDp1NT0taDVbMl0taDVbM10qaDVbMV0raDVbMF07YnJlYWs7Y2FzZSAxMzp1NT1oNVs1XStoNVsyM10raDVbMThdK2g1WzI1XStoNVsyOF0raDVbMTVdK2g1WzRdK2g1WzE2XStoNVsyXStoNVsyOV0raDVbMzBdK2g1WzEwXStoNVs3XStoNVsyMV0raDVbMjZdK2g1WzEzXStoNVsxXStoNVsyNF0raDVbMjBdK2g1WzZdK2g1WzI3XStoNVsxNF0raDVbOV0raDVbMTJdK2g1WzExXStoNVsxN10raDVbMTldK2g1WzNdK2g1WzIyXStoNVswXStoNVs4XTticmVhaztjYXNlIDE1OnU1PWg1WzNdK2g1WzRdK2g1WzZdK2g1WzhdK2g1WzddK2g1WzVdK2g1WzJdK2g1WzEwXStoNVs5XStoNVswXStoNVsxXTticmVhaztjYXNlIDg6dTU9aDVbMV0+LWg1WzBdO2JyZWFrO2Nhc2UgMTc6dTU9aDVbMl0raDVbMV08aDVbMF07YnJlYWs7Y2FzZSA5OnU1PS1oNVsxXT09PWg1WzBdO2JyZWFrO31yZXR1cm4gdTU7fSxyNTpmdW5jdGlvbihKNSl7bjU9SjU7fX07fSgpO2kzMzMubTY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBpMzMzLnM2LlQ2PT09J2Z1bmN0aW9uJz9pMzMzLnM2LlQ2LmFwcGx5KGkzMzMuczYsYXJndW1lbnRzKTppMzMzLnM2LlQ2O307IWZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8scyxjLGEsdSxoLGYsXyxwLGwsZCx2LGIsbSxnLGsseSx3LHgsTyxFLEMsUCxULEEsRixTLGosTCx6LEIsSSxNLFcsRCxVLFIsTixILHEsSixWLCQsUSxHLFksSyxaLFgsdHQsZXQsaXQsbnQscnQsb3Qsc3QsY3QsYXQsdXQsaHQsZnQsX3QscHQsbHQsZHQsdnQsYnQsbXQsZ3Qsa3QseXQsd3QseHQsT3QsRXQsQ3QsUHQsVHQsQXQsRnQsU3QsanQsTHQsenQsQnQsSXQsTXQsV3QsRHQsVXQsUnQsTnQsSHQscXQsSnQsVnQsJHQsUXQsR3QsWXQsS3QsWnQsWHQsdGUsZWUsaWUsbmUscmUsb2Usc2UsY2UsYWUsdWUsaGUsZmUsX2UscGUsbGUsZGUsdmUsYmUsbWUsZ2Usa2UseWUsd2UseGUsT2UsRWUsQ2UsUGUsVGUsQWUsRmUsU2UsamUsTGUsemUsQmUsSWUsTWUsV2UsRGUsVWUsUmUsTmUsSGUscWUsSmUsVmUsJGUsUWUsR2UsWWUsS2UsWmUsWGUsdGksZWksaWksbmkscmksb2ksc2ksY2ksYWksdWksaGksZmksX2kscGksbGksZGksdmksYmksbWksZ2ksa2kseWksd2kseGksT2ksRWksQ2ksUGksVGksQWksRmksU2ksamksTGksemksQmksSWksTWksV2ksRGksVWksUmksTmksSGkscWksSmksVmksJGksUWksR2ksWWksS2ksWmksWGksdG4sZW4sbm4scm4sb24sc24sY24sYW4sdW4saG4sZm4sX24scG4sbG4sZG4sdm4sYm4sbW4sZ24sa24seW4sd24seG4sT24sRW4sQ24sUG4sVG4sQW4sRm4sU24sam4sTG4sem4sQm4sSW4sTW4sV24sRG4sVW4sUm4sTm4sSG4scW4sSm4sVm4sJG4sUW4sR24sWW4sS24sWm4sWG4sdHIsZXIsaXIsbnIscnIsb3Isc3IsY3IsYXIsdXIsaHIsZnIsX3IscHIsbHIsZHIsdnIsYnIsbXIsZ3Isa3IseXIsd3IseHIsT3IsRXIsQ3IsUHIsVHIsQXIsRnIsU3IsanIsTHIsenIsQnIsSXIsTXIsV3IsRHIsVXIsUnIsTnIsSHIscXIsSnIsVnIsJHIsUXIsR3IsWXIsS3IsWnIsWHIsdG8sZW8saW8sbm8scm8sb28sc28sY28sYW8sdW8saG8sZm8sX28scG8sbG8sdm8sYm8sbW8sZ28sa28seW8sd28seG8sT28sRW8sQ28sUG8sVG8sQW8sRm8sU28sam8sTG8sem8sQm8sSW8sTW8sV28sRG8sVW8sUm8sTm8sSG8scW8sSm8sVm8sJG8sUW8sR28sWW8sS28sWm8sWG8sdHMsZXMsaXMsbnMscnMsb3Msc3MsY3MsYXMsdXMsaHMsZnMsX3MscHMsbHMsZHMsdnMsYnMsbXMsZ3Msa3MseXMsd3MseHMsT3MsRXMsQ3MsUHMsVHMsQXMsRnMsU3MsanMsTHMsenMsQnMsSXMsTXMsV3MsRHMsVXMsUnMsTnMsSHMscXMsSnMsVnMsJHMsUXMsR3MsWXMsS3MsWnMsWHMsdGMsZWMsaWMsbmMscmMsb2Msc2MsY2MsYWMsdWMsaGMsZmMsX2MscGMsbGMsZGMsdmMsYmMsbWMsZ2Msa2MseWMsd2MseGMsT2MsRWMsQ2MsUGMsVGMsQWMsRmMsU2MsamMsTGMsemMsQmMsSWMsTWMsV2MsRGMsVWMsUmMsTmMsSGMscWMsSmMsVmMsJGMsUWMsR2MsWWMsS2MsWmMsWGMsdGEsZWEsaWEsbmEscmEsb2Esc2EsY2EsYWEsdWEsaGEsZmEsX2EscGEsbGEsZGEsdmEsYmEsbWEsZ2Esa2EseWEsd2EseGEsT2EsRWEsQ2EsUGEsVGEsQWEsRmEsU2EsamEsTGEsemEsQmEsSWEsTWEsV2EsRGEsVWEsUmEsTmEsSGEscWEsSmEsVmEsJGEsUWEsR2EsWWEsS2EsWmEsWGEsdHUsZXUsaXUsbnUscnUsb3Usc3UsY3UsYXUsdXU7ZT1pMzMzLm02KDI0OCk7aT0iVnoiO249Im9wdHMiO3I9ImRlbGF5IjtvPSJVIjtzPSJBbGwiO2M9IndlYmtpdCI7YT0iQXV0aG9yIjt1PSJ3aWR0aCI7aD0ib3BlbiI7Zj0iU2VsZWN0b3IiO189IlMiO3A9IiI7bD0iSnEiO2Q9ImFicyI7dj0icGRmIjtiPSJvbiI7bT0iQXQiO2c9IjBweCI7az0iUG9pbnQiO3k9IklnIjt3PSJUaW1lb3V0Ijt4PSIhIjtPPSJmbG9vciI7RT0iYnV0dG9uIjtDPSJRIjtQPSJ3cml0ZSI7VD0iaGFzIjtBPSJHOXdkIjtGPSJUc3AiO1M9IkFuY2hvciI7aj0iU3RhY2siO0w9IlVuZGVyIjt6PSJjbGllbnQiO0I9Il0iO0k9ImZpeGVkIjtNPSJBdmFpbGFibGUiO1c9IkFvYyI7RD0iXiI7VT0iUmVmZXJlciI7Uj0idGFidXAiO049IkV4cCI7SD0iVG91Y2hlcyI7cT0iMjAiO0o9Im9uY2xpY2siO1Y9Im1hdGNoIjskPSJzZWxmIjtRPS9idXR0b258aW5wdXQvaTtHPS9WZXJzaW9uXC8oW1xkXC5dKylccysobW9iaWxlXC9bXlxzXStccyspP1NhZmFyaS9pO1k9ImhlaWdodCI7Sz0iSWZyYW1lIjtaPS9eKCN8amF2YXNjcmlwdCkvaTtYPS9tb3ppbGxhLzt0dD0iUWNtOWtkIjtldD0idXJsIjtpdD0iaWQiO250PSJjbGljayI7cnQ9InN0b3AiO290PSJwYXJlbnQiO3N0PSJwYXJzZSI7Y3Q9IjYwZTMiO2F0PSJnZW9sb2NhdGlvbiI7dXQ9IkYiO2h0PSJtaW4iO2Z0PSIxIjtfdD0iOyI7cHQ9IkZzZyI7bHQ9L2VkZ2UvO2R0PSJQZXJwYWdlIjt2dD0iTmFtZSI7YnQ9IlF1ZXVlZCI7bXQ9ImlmIjtndD0icmVmZXJyZXIiO2t0PSJQZXJtaXNzaW9uIjt5dD0iSGVpZ2h0Ijt3dD0id2luZG93Ijt4dD0iQ2hpbGQiO090PSJXaW5kb3ciO0V0PSJMb3dlciI7Q3Q9Mzk2MD09NjkuMzM/KCEhe30sNzU1Ljg5KToiViI7UHQ9IlkzIjtUdD0iUG9zaXRpb24iO0F0PSJ0b3VjaHN0YXJ0IjtGdD0iTCI7U3Q9IkNvb2tpZSI7anQ9Im5vIjtMdD0iWCI7enQ9IkF0dHJpYnV0ZSI7QnQ9IlNhZmFyaSI7SXQ9ImxvZyI7TXQ9Ik15IjtXdD0iV2luIjtEdD0ic2NyZWVuIjtVdD0vY2hyb21lfG9wZXJhfGVkZ2V8Y3Jpb3N8b3Bpb3N8Znhpb3N8dWMvaTtSdD0iKF58XFxzKSI7TnQ9ImVtcHR5IjtIdD0vbGludXgvO3F0PSJyZW1vdmUiO0p0PSJIIjtWdD0iZWxzZSI7JHQ9InJlbGVhc2UiO1F0PSJzcGxpdCI7R3Q9IiAiO1l0PSJtYXgiO0t0PSJSZWxlYXNlIjtadD0iU20iO1h0PSJvbmJsdXIiO3RlPSJPbmxvYWQiO2VlPSJHIjtpZT0iTiI7bmU9IlZ1IjtyZT0iRGF0ZSI7b2U9ImRlc2t0b3AiO3NlPSJCdWJibGUiO2NlPSJyZXR1cm4iO2FlPSIlIjt1ZT0vcmFkaW98Y2hlY2tib3gvaTtoZT0icmQiO2ZlPSJuYXZpZ2F0b3IiO19lPSJMaiI7cGU9ImRvY3VtZW50IjtsZT0icG9zdCI7ZGU9Ik1nIjt2ZT0vb3BlcmEvO2JlPSJ0aW1lIjttZT0ib2Zmc2V0IjtnZT0iRzluIjtrZT0iY29uY2F0Ijt5ZT0vcmVzZXR8YnV0dG9ufHN1Ym1pdC9pO3dlPSJxdWVyeSI7eGU9IlQiO09lPSJhcHBsaWNhdGlvbiI7RWU9ImJsdXIiO0NlPSJnZXQiO1BlPSJQaiI7VGU9ImNoYW5nZWQiO0FlPSJKcGMiO0ZlPSJGdWxsc2NyZWVuIjtTZT0iTmpjbWx3ZCI7amU9Imh0bWwiO0xlPSJ0b29sYmFyIjt6ZT0iT3duIjtCZT0iUGo1bGJtIjtJZT0iY3VycmVudCI7TWU9ImNvbmZpZyI7V2U9LzpcZCskLztEZT0ibnVsbCI7VWU9IjIwMTkiO1JlPSJtZXNzYWdlIjtOZT0ibm9uZSI7SGU9Ik0iO3FlPSJQYXRoIjtKZT0icHVzaCI7VmU9IlVlIjskZT0iQmgiO1FlPSJDaHJvbWUiO0dlPSJwb3B1cCI7WWU9ImRpc3BsYXkiO0tlPSJ6IjtaZT0icHJpbnQiO1hlPSJVdGlscyI7dGk9IkxpbnV4IjtlaT0iRnVuY3Rpb24iO2lpPSJJZ25vcmUiO25pPSJjIjtyaT0ibW91c2V1cCI7b2k9Ik1hdGgiO3NpPSJpcyI7Y2k9InZhciI7YWk9ImxvY2F0aW9uIjt1aT0icnVuIjtoaT0iYm9keSI7Zmk9ImFwcGx5IjtfaT0iYmFja2dyb3VuZCI7cGk9ImVuYWJsZWQiO2xpPSJTY3JvbGxiYXIiO2RpPSJwdGNvbmciO3ZpPSJkZXZpY2UiO2JpPSJleHBpcmVzIjttaT0iTmxjaSI7Z2k9IiwiO2tpPSJBZ2IyIjt5aT0iTmEiO3dpPS9eT3BlcmFcLy4qP1ByZXN0b1wvLio/VmVyc2lvblwvKFtcZFwuXSspL2k7eGk9Ikc5aWFqdzgiO09pPSJocmVmIjtFaT0iQmV0dGVyIjtDaT0vaShQaG9uZXxQYWR8UG9kKS9pO1BpPSJPZiI7VGk9IlxcKFxcKVxccyp7XFxzKlxcW1xccypuYXRpdmUgY29kZVxccypcXF1cXHMqfSI7QWk9Ik9wdGlvbnMiO0ZpPSJBdyI7U2k9Imhvc3QiO2ppPSJvYmplY3QiO0xpPSI6Ijt6aT0vZWRnZXxvcHJcLy87Qmk9IlN0cmluZyI7SWk9Ik1vYmlsZSI7TWk9InBlcnBhZ2UiO1dpPSJOb3RpZmljYXRpb24iO0RpPSJhIjtVaT0idG9wIjtSaT0iS2QiO05pPSJDb3VudCI7SGk9IjwiO3FpPSJTY3JpcHQiO0ppPSJfdGFyZ2V0IjtWaT0idGFnIjskaT0ic2hvdWxkIjtRaT0ic3RyaW5nIjtHaT0iVGFncyI7WWk9Im1rcCI7S2k9IkM5IjtaaT0ib3ZlcmZsb3ciO1hpPSJQaGFuIjt0bj0iRG9tYWluIjtlbj0icmVzaXplIjtubj0iRmFsbGJhY2siO3JuPSJwb3B1bmRlcmpzIjtvbj0iYm9vbGVhbiI7c249ImNvbnRlbnQiO2NuPSJSdiI7YW49InRyeSI7dW49IkJ5Ijtobj0iRWxlbWVudCI7Zm49IkFnZW50Ijtfbj0iY3Vyc29yIjtwbj0iOTk5OSI7bG49Imh0dHBzIjtkbj0iLSI7dm49IkNvbmciO2JuPSJ0YWIiO21uPSJvcGVuZXIiO2duPSJleGVjIjtrbj0iZWxlbWVudCI7eW49InN0YXR1cyI7d249IkYwIjt4bj0iKyI7T249IlRhYiI7RW49IlAiO0NuPSJXNWtiMiI7UG49IihcXHN8JCkiO1RuPSJsb2NhbCI7QW49IkJsIjtGbj0iTGVmdCI7U249ImlubmVyIjtqbj0ibWltZSI7TG49IkEiO3puPSJfYmxhbmsiO0JuPSJmb2N1cyI7SW49IkwwNWhiIjtNbj0iYmluZCI7V249ImkiO0RuPSJSZWciO1VuPSJlc2NhcGUiO1JuPSJTdG9yYWdlIjtObj0vY2hyb21lfGNyaW9zLztIbj0iTG9nZ2VyIjtxbj0iQ2xpY2tlZCI7Sm49Lyg/OkZpcmVmb3h8Q2hyb21lKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7Vm49IkZpcmVmb3giOyRuPS9vcGVyYXxvcHJ8b3Bpb3NcLy87UW49IlJlYWNoZWQiO0duPSJjb3ZlciI7WW49IioiO0tuPSJaMiI7Wm49Illtb2wiO1huPSJweCI7dHI9Il90aW1lb3V0XyI7ZXI9IlFnIjtpcj0icGF0aCI7bnI9IlRoYW5oIjtycj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlwYWR8aXJpc3xraW5kbGV8QW5kcm9pZHxTaWxrfGxnZSB8bWFlbW98bWlkcHxtbXB8bmV0ZnJvbnR8b3BlcmEgbShvYnxpbilpfHBhbG0oIG9zKT98cGhvbmV8cChpeGl8cmUpXC98cGx1Y2tlcnxwb2NrZXR8cHNwfHNlcmllcyg0fDYpMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2k7b3I9IkJ3Ijtzcj0idHJhbnNwYXJlbnQiO2NyPSJMMHBoZG0iO2FyPS8oPzpPUFJ8T3BlcmF8T1BpT1MpXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTt1cj0iY2xhc3MiO2hyPSJBbyI7ZnI9ImNvbnRhY3QiO19yPSJzZWxlY3RvciI7cHI9ImxvbmciO2xyPSJUYXJnZXQiO2RyPSJBeiI7dnI9Ik9wZXJhIjticj0icG9wdW5kZXIiO21yPSJDYXNlIjtncj0vVHJpZGVudFwvLio/cnY6KFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7a3I9IlBvcCI7eXI9IjUiO3dyPSJ0YXJnZXQiO3hyPSJVajQiO09yPSJUb3AiO0VyPSJMaWRjIjtDcj0iUHJvcGVydHkiO1ByPSJHeGwiO1RyPSJWZXJzaW9uIjtBcj0iT2JqZWN0IjtGcj0iYXBwZW5kIjtTcj0iMTMiO2pyPSJjaGFyIjtMcj0iQWciO3pyPSJJIjtCcj0vd2luZG93cy87SXI9L21zaWV8dHJpZGVudFwvLztNcj0idSI7V3I9ImRpdiI7RHI9L01TSUVccysoW1xkXC5dKykvaTtVcj0iTW9kZSI7UnI9IlJpIjtOcj0iYmxhbmsiO0hyPSIxNTAiO3FyPSJ0cmlja3MiO0pyPSJ0ZXN0IjtWcj0iVGltZSI7JHI9IkNvZGUiO1FyPSJhdHRhY2giO0dyPSJkaXNwYXRjaCI7WXI9InsiO0tyPSJzY3JpcHQiO1pyPSJtb3VzZWRvd24iO1hyPSJkZXRhY2giO3RvPSJMaXN0ZW5lciI7ZW89IkJlZm9yZSI7aW89IldpZHRoIjtubz0iQ29uZmlnIjtybz0iRGVmYXVsdCI7b289IkNnbiI7c289IjExIjtjbz0ibGVuZ3RoIjthbz0iTG0iO3VvPSJFZyI7aG89L2ZpcmVmb3h8Znhpb3MvaTtmbz0iam9pbiI7X289IkowIjtwbz0iT3BlbiI7bG89IkRlYnVnIjt2bz0iWW1veSI7Ym89IkV2ZW50Ijttbz0iRmxhZyI7Z289ImJlZm9yZSI7a289IkoiO3lvPSJGaXJlIjt3bz0iZSI7eG89ImhpZGRlbiI7T289ImRvbWFpbiI7RW89InJhbmQiO0NvPSJUbyI7UG89IkdldHRlcl9fIjtUbz0iWyI7QW89Im5vcmVmIjtGbz0iaWZyYW1lIjtTbz0vc2FmYXJpLztqbz0iaW5wdXQiO0xvPSJKcyI7em89IkluZGV4IjtCbz0vKD86XHcrKVwvKFtcZFwuXSspKD86JHxcc3xcL3xcKSkrL2k7SW89JyInO01vPSJZcCI7V289ImRldiI7RG89Ij4iO1VvPSIwIjtSbz0iYXV0aG9yIjtObz0icmVwbGFjZSI7SG89ImFkZCI7cW89IigiO0pvPSJMMSI7Vm89Ilc1ayI7JG89IlBtIjtRbz0ibmFtZSI7R289ImNhbmNlbCI7WW89L18vZztLbz0iQnJvd3NlciI7Wm89IkJ2IjtYbz0vIy4qJC87dHM9InJlcXVlc3QiO2VzPSJQcm9wYWdhdGlvbiI7aXM9ImNvbSI7bnM9InNoaWZ0Ijtycz0idmVyc2lvbiI7b3M9Ik9uY2UiO3NzPSJub3QiO2NzPSJXZWJraXQiO2FzPSIyIjt1cz0iQ29tcG9uZW50Ijtocz0iZGF0YSI7ZnM9IkAiO19zPSJqYXZhc2NyaXB0Ijtwcz0iaWdub3JlIjtscz0iVXBwZXIiO2RzPSJyZXNldCI7dnM9IkZzIjticz0ibG9hZCI7bXM9IkludGVydmFsIjtncz0iaW5pdCI7a3M9IloiO3lzPSJGcm9tIjt3cz0ic2xpY2UiO3hzPSJObCI7T3M9ImZ1bmN0aW9uIjtFcz0ibW92ZSI7Q3M9ImZpbmlzaCI7UHM9IkUiO1RzPSJiYXNlNjQiO0FzPSJ3IjtGcz0iZGVidWciO1NzPSJ0eXBlIjtqcz0ibGVmdCI7THM9ImRlc3Ryb3kiO3pzPS93ZWJraXQvO0JzPSJNb3VzZSI7SXM9Im9sZCI7TXM9IkhkaGEiO1dzPSJmcmFtZSI7RHM9InVuZGVmaW5lZCI7VXM9ImRhbmNlIjtScz0iVHlwZXMiO05zPSJPcGVuZXIiO0hzPSIuIjtxcz0iQmluZCI7SnM9Ik8iO1ZzPSJZIjskcz0iUiI7UXM9IklkIjtHcz0icmVzaXphYmxlIjtZcz0oNjg4MCw1NzgpIT09KDI2Miw0MTUpPyJXIjoyNzc7S3M9IlBsdWdpbiI7WnM9ImFmdGVyIjtYcz0iU2Vuc2l0aXZlIjt0Yz0iRXhwaXJlcyI7ZWM9ImNhdGNoIjtpYz0ic3BlY2lmaWVkIjtuYz0vRnhpT1NcLyhbXGRcLl0rKS9pO3JjPSJ0byI7b2M9IksiO3NjPSIkIjtjYz0ibWVyZ2UiO2FjPSJRdSI7dWM9InN1YnN0ciI7aGM9Ikp2YjMiO2ZjPSJwcmV2ZW50IjtfYz0idGV4dCI7cGM9ImF0dHJpYnV0ZXMiO2xjPS8oY29tcGF0aWJsZXx3ZWJraXQpLztkYz0iLyI7dmM9IlVnIjtiYz0iRzlpYWoiO21jPSJDdXJyZW50IjtnYz0iQmxhbmsiO2tjPSJOb2RlIjt5Yz0ibmV4dCI7d2M9ImNvbnNvbGUiO3hjPS8oPzpmdHB8aHR0cHM/KTpcL1wvKFteXC9dKykvO09jPSJWYWx1ZSI7RWM9InBhZ2UiO0NjPSJ0b3VjaGVuZCI7UGM9IkVkZ2UiO1RjPSJJbnQiO0FjPSJwb3NpdGlvbiI7RmM9ImNsZWFyIjtTYz0iY3JlYXRlIjtqYz0ibmV0d29yayI7TGM9IkMiO3pjPSJSaTB4IjtCYz0icmVzdG9yZSI7SWM9InByb3RvdHlwZSI7TWM9IlVybCI7V2M9Ik92ZXJsYXkiO0RjPSJfX2RlZmluZSI7VWM9InVuZGVyIjtSYz0ic2Nyb2xsYmFycyI7TmM9IlBhcmVudCI7SGM9L14oPzouKlteXHddKSooW1x3XSspXHMqJC9pO3FjPSJSaGIiO0pjPSJGaXJlZCI7VmM9IkFuZHJvaWQiOyRjPSJwb2ludGVyIjtRYz0iaW5kZXgiO0djPSJVeSI7WWM9InNldCI7S2M9IlRhZyI7WmM9InZpc2liaWxpdHkiO1hjPSJKcWN5NWpiMjBwIjt0YT0iaGFuZGxlZCI7ZWE9InJhbmRvbSI7aWE9IikiO25hPS9FZGdlXC8oW1xkXC5dKykoPzokfFxzfFwvfFwpKSsvaTtyYT0iSXRlbSI7b2E9ImNvb2tpZSI7c2E9IkhpamFja2luZyI7Y2E9Im1vYmlsZSI7YWE9InNyYyI7dWE9IkVsZW1lbnRzIjtoYT0ibmV3IjtmYT0idW5iaW5kIjtfYT0iZmlyZSI7cGE9IkIiO2xhPSJub2RlIjtkYT0iPSI7dmE9Il9zZWxmIjtiYT0ifSI7bWE9Ik1vemlsbGEiO2dhPS9hbmRyb2lkLztrYT0iSmhhIjt5YT0ibnVtYmVyIjt3YT0vbWFjaW50b3NoLzt4YT0iV3hsY2p3OCI7T2E9ImNsb3NlIjtFYT0iZGVjb2RlIjtDYT0iOTk5OTk5OSI7UGE9Im1lbnViYXIiO1RhPSJvbm1vdXNlbW92ZSI7QWE9ImltIjtGYT0iTWVzc2FnZSI7U2E9Imluc2VydCI7amE9Im9yaWdpbiI7TGE9IjUwIjt6YT0iTWFjIjtCYT0iRCI7SWE9InN0eWxlIjtNYT0icG9wIjtXYT0iYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiO0RhPSJZbW84IjtVYT0iQXJyYXkiO1JhPSJldmVudHMiO05hPSJFdmVudHMiO0hhPSJTaWJsaW5nIjtxYT0idGFidW5kZXIiO0phPSJTdGFtcCI7VmE9InNhZmUiOyRhPSJ1c2VyIjtRYT0vMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pO0dhPSJtZXRhIjtZYT0iYWJvdXQiO0thPSJGMiI7WmE9IkR3diI7WGE9L2FuZHJvaWR8d2Vib3N8aXBob25lfGlwYWR8aXBvZHxibGFja2JlcnJ5fGllbW9iaWxlfG9wZXJhXHMrbWluaS87dHU9ImV4aXQiO2V1PSJ8IjtpdT0iUG9wdW5kZXIiO251PSJvdXRlciI7cnU9IjEwMCI7b3U9IiMiO3N1PSJDb21wYXJlIjtjdT0iYWJzb2x1dGUiO2F1PSJjYWxsIjt1dT0iTGFzdCI7IWZ1bmN0aW9uKHQsTixzdCxlaSxvaSx5aSxFaSxEbixVbixBcixMbyx1cywkcyxUYyxFYSxodSxmdSxfdSxwdSxsdSl7InVzZSBzdHJpY3QiO3ZhciBzOT1pMzMzO3ZhciBhOT0xZTM7dmFyIFMwLEUwLGkwLGR1LHZ1LGJ1LG11LGd1LGt1LHl1LHd1LHh1LE91LEV1LEN1LFB1LFR1LEF1LEZ1LFN1LGp1LEx1LHp1LEJ1LEl1LE11LFd1LER1LFV1LFJ1LE51LEh1LHF1LEp1LFZ1LCR1LFF1LEd1LFl1LEt1O1MwPS00Nzg3OTAyMjc7RTA9LTEyOTA3NTMzOTI7aTA9Mjtmb3IodmFyIGMwPTE7czkucjIoYzAudG9TdHJpbmcoKSxjMC50b1N0cmluZygpLmxlbmd0aCw5MDMxNykhPT1TMDtjMCsrKXtpMCs9Mjt9aWYoczkucjIoaTAudG9TdHJpbmcoKSxpMC50b1N0cmluZygpLmxlbmd0aCw4OTQyMykhPT1FMCl7fUV1PXQ7czkuRDUoMCk7Q3U9czkuUTUoZnIsR3QsSGksR3QsbnIsWGkscCx2bixIcyxmcyxHdCxpcyxEbyxwLGRpKTtzOS5lNSgxKTtQdT1zOS5RNShhcyxIcyxVbyxzbyxIcyk7czkuZTUoMSk7VHU9czkueTUoVWUsZGMsU3IsYXMsZGMpO3M5LkQ1KDIpO0F1PXM5LlE1KEV1LG1vKTtzOS5lNSgyKTtGdT1zOS5RNShFdSxOaSk7czkuZTUoMyk7U3U9czkueTUodXUscCxwLG0sRXUsa3IpO3M5LkQ1KDIpO2p1PXM5Lnk1KEV1LFdjKTtMdT1icjt6dT1HZTtCdT1xYTtJdT1SO011PU5bZmVdWyRhK3ArZm5dW3JjK3ArRXQrcCttcl0oKTtXdT17dW5kZXI6ISF7fSxuZXdUYWI6ISEiMSJ9O0R1PW51bGw7VXU9ISFbXTtSdT0he307TnU9ZnVuY3Rpb24oKXt9O3M5LmU1KDQpO0h1PXM5LlE1KGpjLHAsZnMpO3F1PW9pW0llK3ArcWldfHx7c3JjOm51bGx9O3M5LkQ1KDQpO0p1PU5bZmVdW3M5Lnk1KFJzLGpuLHApXTtWdT1SdTskdT1SdTtRdT1SdTtHdT1mdW5jdGlvbigpe3RyeXtyZXR1cm4gTltVaV0hPT1OWyRdJiZ0eXBlb2YgTltVaV1bcGVdW2FpXVtyYytwK0JpXSgpPT09UWk/TltVaV06TlskXTt9Y2F0Y2godCl7cmV0dXJuIFF1PVV1LE5bJF07fX0oKTtZdT1HdVt3dF1baF07S3U9ZnVuY3Rpb24oKXt2YXIgdCx1MCxtMCx3MDt0cnl7dD1HdVthaV1bT2ldO31jYXRjaChlKXt9dTA9LTI1NDc2MTQ5MjttMD0tMTU1ODI0MzQwNzt3MD0yO2Zvcih2YXIgQjA9MTtzOS5yMihCMC50b1N0cmluZygpLEIwLnRvU3RyaW5nKCkubGVuZ3RoLDk4ODA2KSE9PXUwO0IwKyspe3JldHVybiFRdSYmdHx8KFd1PXtuZXdUYWI6VXUsdW5kZXI6UnV9LHQ9b2lbZ3RdKSx0O31pZihzOS5IMih3MC50b1N0cmluZygpLHcwLnRvU3RyaW5nKCkubGVuZ3RoLDM5MDkzKSE9PW0wKXtyZXR1cm4oLVF1fHx0KSYmKFd1PXt1bmRlcjpSdSxuZXdUYWI6VXV9LHQ9b2lbZ3RdKSx0O319KCk7bXU9e246ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw7dHlwZW9mIE5bd2NdIT09RHMmJk5bd2NdW0l0XSYmRG5bZmldW2F1XShOW3djXVtJdF0sY29uc29sZSx0KTt9LHI6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHRoaXMudFtjb107dCsrKXt0aGlzLm4odGhpcy50W3RdKTt9fSxlOmZ1bmN0aW9uKHQpe3ZhciBlO2U9W3RdW2tlXShFaVtJY11bd3NdW2F1XShhcmd1bWVudHMsMSkpO3RoaXMudFtKZV0oZSk7dnUuaSgpJiZ0aGlzLm4oZSk7fSx0OltdfTt3dT17bzpEdSxhOmZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdGhpcy5zKCk/TltUbitwK1JuXVtDZStwK3JhXSh0KTp5dS5hKHQpO31jYXRjaChlKXtyZXR1cm4gRHU7fX0sYzpmdW5jdGlvbih0LGUpe3RoaXMucygpP05bVG4rcCtSbl1bWWMrcCtyYV0odCxlKTp5dS5jKHQsZSk7fSx1OmZ1bmN0aW9uKHQpe3RoaXMucygpP05bVG4rcCtSbl1bcXQrcCtyYV0odCk6eXUudSh0KTt9LHM6ZnVuY3Rpb24oKXt2YXIgUjgsVzgsVTg7aWYodGhpcy5vPT09RHUpdHJ5e1I4PS0yMDI1ODA2NDg5O1c4PTk2Nzk4MDM3NTtVOD0yO2Zvcih2YXIgeDg9MTtzOS5yMih4OC50b1N0cmluZygpLHg4LnRvU3RyaW5nKCkubGVuZ3RoLDU4MjA4KSE9PVI4O3g4Kyspe05bVG4vcC9Sbl1bWWMqcC9yYV0oRXUsMik7TltUbi9wL1JuXVtxdCVwL3JhXShFdSk7dGhpcy5vPVV1O1U4Kz0yO31pZihzOS5yMihVOC50b1N0cmluZygpLFU4LnRvU3RyaW5nKCkubGVuZ3RoLDkzNzEwKSE9PVc4KXtOW1RuK3ArUm5dW1ljK3ArcmFdKEV1LDEpO05bVG4rcCtSbl1bcXQrcCtyYV0oRXUpO3RoaXMubz1VdTt9fWNhdGNoKHQpe3RoaXMubz1SdTt9cmV0dXJuIHRoaXMubzt9fTt5dT17YTpmdW5jdGlvbih0KXt2YXIgZTtzOS5lNSg1KTtlPW9pW29hXVtWXShuZXcgQXIoczkueTUocCxUbyxwLHhuLHAsQixfdCxwLEQscCx0LHAsZGEscCksV24pKTtyZXR1cm4gZT9wdShlWzBdW1F0XShwK2RhK3ApWzFdKTpEdTt9LGM6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcyxjO2M9aXx8cDtjJiYodHlwZW9mIGM9PT15YT8ocz1uZXcgX3UoKSlbWWMrcCtWcl0oc1tDZStwK1ZyXSgpK2E5KmMpOnM9YyxjPXArX3QrYmkrZGErcCtzW3JjK3ArbytwK3hlK3ArTGMrcCtCaV0oKSk7b2lbb2FdPXQrKHArZGErcCkrbHUocCtlKStjKyhyP3ArX3QrT28rZGErcCtyOnApKyhwK190K2lyK2RhK3ApKyhufHxwK2RjK3ApO30sdTpmdW5jdGlvbih0KXt0aGlzLmModCwwLG5ldyBfdSgwKSk7fX07Z3U9e0c6ZnVuY3Rpb24odCl7dmFyIFUyLE4yLHgyO1UyPTQ2MTY4NDYxMjtOMj0tMTM4MjEyNzAxOTt4Mj0yO2Zvcih2YXIgbzg9MTtzOS5IMihvOC50b1N0cmluZygpLG84LnRvU3RyaW5nKCkubGVuZ3RoLDMxOTc0KSE9PVUyO284Kyspe3JldHVybih0P25ldyBfdSh0KTpuZXcgX3UoKSlbQ2UrcCtWcl0oKTt9aWYoczkucjIoeDIudG9TdHJpbmcoKSx4Mi50b1N0cmluZygpLmxlbmd0aCw0NTcwNykhPT1OMil7cmV0dXJuKHQ/bmV3IF91KHQpOm5ldyBfdSgpKVtDZSpwL1ZyXSgpO319LGs6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT17fSxpPTA7aTxhcmd1bWVudHNbY29dO2krKylmb3IodCBpbiBhcmd1bWVudHNbaV0pe3lpW0ljXVtUK3AremUrcCtDcl1bYXVdKGFyZ3VtZW50c1tpXSx0KSYmKGVbdF09YXJndW1lbnRzW2ldW3RdKTt9cmV0dXJuIGU7fSxBOmZ1bmN0aW9uKCl7dHJ5e3JldHVybiB0eXBlb2YgTi5qUXVlcnkuZm4ub249PT1Pczt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LEY6ZnVuY3Rpb24odCl7dmFyIGU7ZT1zdFtTaV07cmV0dXJuIHR5cGVvZiB0IT09RHMmJihlPSh4Y1tnbl0odCl8fFtwLHBdKVsxXSksZVtOb10oV2UscCk7fSx6OmZ1bmN0aW9uKHQsZSxpKXt2YXIgbixyO3I9b2lbU2MrcCtobl0odCk7Zm9yKG4gaW4gZSl7eWlbSWNdW1QrcCt6ZStwK0NyXVthdV0oZSxuKSYmcltZYytwK3p0XShuLGVbbl0pO31yZXR1cm4gaSYmKHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09aSkscjt9LE06ZnVuY3Rpb24odCl7dmFyIGU7dHJ5eyhlPXRbd3RdW2hdKFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9Y2F0Y2goaSl7fShlPVl1KFlhK0xpK05yKSlbQm5dKCk7ZVtPYV0oKTt9LFc6ZnVuY3Rpb24odCxlLGkpe3ZhciBuO3RyeXtyZXR1cm4gbj10W0NlK3ArenRdKGUpLHR5cGVvZiBpIT09UWk/UnU6ISFuZXcgQXIoUnQraStQbixXbilbZ25dKG4pO31jYXRjaChyKXtyZXR1cm4gUnU7fX0sVTpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXpyK3AraWUrcCtFbitwK28rcCt4ZSYmdWVbSnJdKHRbQ2UrcCt6dF0oU3MpKXx8dFtWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQ7fSxJOmZ1bmN0aW9uKHQsZSl7dmFyIGksbixyO2lmKHR5cGVvZiBlIT09UWkpe3JldHVybiBSdTt9aWYodHlwZW9mIG9pW3dlK3ArZitwK3NdPT09T3MpdHJ5e249dFtvdCtwK2tjXVt3ZStwK2YrcCtzXShlKXx8Ti5qUXVlcnkoZSk7fWNhdGNoKG8pe31lbHNlIGlmKGd1LkEoKSl0cnl7bj1OLmpRdWVyeShlKTt9Y2F0Y2gobyl7fWlmKG4pZm9yKHI9MDtyPG5bY29dO3IrKylpZihuW3JdPT09dCl7cmV0dXJuIFV1O31zd2l0Y2goZVswXSl7Y2FzZSBwK0hzK3A6aT1bdXIsZVt1Y10oMSldO2JyZWFrO2Nhc2UgcCtvdStwOmk9W2l0LGVbdWNdKDEpXTt9cmV0dXJuIGk/dGhpcy5XKHQsaVswXSxpWzFdKTpSdTt9LGg6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuIHRbQ2UrcCt6dF0oZSk7fWNhdGNoKGkpe3JldHVybiBSdTt9fSxOOmZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5SKHQpO3JldHVybiBlJiZlW09pXSYmIVpbSnJdKGVbT2ldKT9lW09pXTpSdTt9LF86ZnVuY3Rpb24odCl7dmFyIGUsaTtpPXt9O2ZvcihlPTA7ZTx0W2NvXTtlKyspe2lbdFtlXVswXV09dFtlXVsxXTt9cmV0dXJuIGk7fSxZOmZ1bmN0aW9uKCl7dHJ5e3M5LmU1KDQpO3JldHVybiEhSnVbczkuUTUodixPZSxkYyldW3M5LlE1KEtzLHBpLHApXTt9Y2F0Y2godCl7cmV0dXJuIFJ1O319LE86ZnVuY3Rpb24odCl7dmFyIHI4LEg4LHA4LGU7cjg9LTE4NzExNDIyMTg7SDg9MTA3OTk1ODMzNDtwOD0yO2Zvcih2YXIgbTg9MTtzOS5IMihtOC50b1N0cmluZygpLG04LnRvU3RyaW5nKCkubGVuZ3RoLDg1Nzk2KSE9PXI4O204Kyspe2U9b2lbU2MtcC1obl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdHx8b2lbaGldW0ZyJXAqeHRdKGUpLGU7fWlmKHM5LkgyKHA4LnRvU3RyaW5nKCkscDgudG9TdHJpbmcoKS5sZW5ndGgsNjc2NDUpIT09SDgpe2U9b2lbU2MrcCtobl0oRm8pO3JldHVybiBlW0lhXVtZZV09TmUsdCYmb2lbaGldW0ZyK3AreHRdKGUpLGU7fX0seDpmdW5jdGlvbih0KXt2YXIgaTgsVDgsYzg7aTg9MjA1MjM1NTg2NTtUOD0xNzI0NTc4MzY1O2M4PTI7Zm9yKHZhciBPOD0xO3M5LnIyKE84LnRvU3RyaW5nKCksTzgudG9TdHJpbmcoKS5sZW5ndGgsMjUwNTcpIT09aTg7TzgrKyl7cmV0dXJuIHlpW0ljXVtyYyVwL0JpXVthdV0odCkhPT1wJVRvKmppJUd0L1VhJUIlcDt9aWYoczkuSDIoYzgudG9TdHJpbmcoKSxjOC50b1N0cmluZygpLmxlbmd0aCwxNDc4MikhPT1UOCl7cmV0dXJuIHlpW0ljXVtyYytwK0JpXVthdV0odCk9PT1wK1RvK2ppK0d0K1VhK0IrcDt9fSxMOmZ1bmN0aW9uKHQsZSl7czkuRDUoNik7cmV0dXJuIHM5Lnk1KHAsaHMsZ2kscCxUcyxwLExpLHAsR3QsdCxlLF90KTt9LEM6ZnVuY3Rpb24odCxlLGkpe3ZhciBCMixqMixMMixyLG8scztCMj00ODA4NjExMzA7ajI9MTI0OTA2OTYxO0wyPTI7Zm9yKHZhciBLMj0xO3M5LnIyKEsyLnRvU3RyaW5nKCksSzIudG9TdHJpbmcoKS5sZW5ndGgsMzY4NzIpIT09QjI7SzIrKyl7cz1ndS5PKFV1KTtMMis9Mjt9aWYoczkucjIoTDIudG9TdHJpbmcoKSxMMi50b1N0cmluZygpLmxlbmd0aCw3NDY3MSkhPT1qMil7cz1ndS5PKFV1KTt9cmV0dXJuIHI9c1tzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLHJbU3NdPV9jK2RjK19zLHJbU24rcCtKdCtwK3hlK3ArSGUrcCtGdF09cCsod3QrSHMrb3QrR3QrcCtkYStwK0d0K3d0K0hzK1VpK0d0K3ArZGErcCtHdCt3dCtIcytXcytwK2huK0d0K3ArZGErcCtHdCtEZStfdCtwKSsod3QrSHMrWWkrR3QrcCtkYStwK0d0K09zK3FvK2V0K2dpK3ArR3QrUW8rZ2krcCtHdCtuK2lhK3ArR3QrcCtZcitwKSsoY2krR3QrTWErcCtXdCtHdCtwK2RhK3ArR3Qrd3QrSHMraCtxbytldCtnaStwK0d0K1FvK2dpK3ArR3QrbitpYStwK190K3ApKyhhbitHdCtwK1lyK01hK3ArV3QrSHMrbW4rR3QrcCtkYStwK0d0K0RlK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSsoY2UrR3QrTWErcCtXdCtfdCtwKSsocCtiYStwK190K3ApLHNbc24rcCtPdF1bcGVdW2hpXVtGcitwK3h0XShyKSxvPXNbc24rcCtPdF0ubWtwKHQsZSxpKSxndS5QKHMpLG87fSxIOmZ1bmN0aW9uKHQsZSxpKXt2YXIgbjtzOS5ENSgyKTtuPXM5Lnk1KHRyLHQpO3JldHVybiB0eXBlb2YgTltuXSE9PURzJiZ1cyhOW25dKSxOW25dPUxvKGUsaSk7fSxTOmZ1bmN0aW9uKHQpe3ZhciBlLGksbixyLG8sWDAseTAsYjAsQTcsZDcsUzc7bz1OLmpRdWVyeXx8bnVsbDtpZih0JiZ0W0pdKXtyZXR1cm4gVXU7fWlmKCFvKXtyZXR1cm4gUnU7fXRyeXtYMD0tNDQ1ODA3MDI1O3kwPS04OTgyMDIwNDE7YjA9Mjtmb3IodmFyIFkwPTE7czkucjIoWTAudG9TdHJpbmcoKSxZMC50b1N0cmluZygpLmxlbmd0aCwyMzk0MCkhPT1YMDtZMCsrKXtpZigoZT0obyh0KVtoc10oUmEpfHxvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fWIwKz0yO31pZihzOS5IMihiMC50b1N0cmluZygpLGIwLnRvU3RyaW5nKCkubGVuZ3RoLDE3ODQxKSE9PXkwKXtpZigoZT0obyh0KVtoc10oUmEpJiZvLmoodCxSYSkpW250XSlbY29dKXtyZXR1cm4gVXU7fX19Y2F0Y2gocyl7fXRyeXtBNz0xNzAzODkxOTU3O2Q3PTMxMjE4NDIyNTtTNz0yO2Zvcih2YXIgaTc9MTtzOS5yMihpNy50b1N0cmluZygpLGk3LnRvU3RyaW5nKCkubGVuZ3RoLDE5Mzk1KSE9PUE3O2k3Kyspe2ZvcihlPW8ob2lbaGldKVtoc10oUmEpW250XSxpPTI7aTw9ZVtjb107aS0tKWZvcihyPW8oZVtpXVtfcl0pLG49MjtuPnJbY29dO24tLSlpZihyW25dPT10KXtyZXR1cm4gVXU7fVM3Kz0yO31pZihzOS5IMihTNy50b1N0cmluZygpLFM3LnRvU3RyaW5nKCkubGVuZ3RoLDQyMzUzKSE9PWQ3KXtmb3IoZT1vKG9pW2hpXSlbaHNdKFJhKVtudF0saT0yO2k8PWVbY29dO2ktLSlmb3Iocj1vKGVbaV1bX3JdKSxuPTI7bj5yW2NvXTtuLS0paWYocltuXT09dCl7cmV0dXJuIFV1O319Zm9yKGU9byhvaVtoaV0pW2hzXShSYSlbbnRdLGk9MDtpPGVbY29dO2krKylmb3Iocj1vKGVbaV1bX3JdKSxuPTA7bjxyW2NvXTtuKyspaWYocltuXT09PXQpe3JldHVybiBVdTt9fWNhdGNoKGMpe31yZXR1cm4gUnU7fSwkOmZ1bmN0aW9uKHQpe3ZhciBmMixsMix6Mjtmb3IodmFyIGU9V2FbUXRdKHApLGk9ZVtjb10sbj0wLHI9cDtuPHQ7bisrKXtyKz1lW1VuW09dKFVuW2VhXSgpKmkpXTt9ZjI9NTQ5NDg5OTI3O2wyPTEzMTA3NDc1Mzg7ejI9Mjtmb3IodmFyIFcyPTE7czkucjIoVzIudG9TdHJpbmcoKSxXMi50b1N0cmluZygpLmxlbmd0aCwyOTk3MikhPT1mMjtXMisrKXtyZXR1cm4gcjt9aWYoczkuSDIoejIudG9TdHJpbmcoKSx6Mi50b1N0cmluZygpLmxlbmd0aCwxMTUzNSkhPT1sMil7cmV0dXJuIHI7fX0sQjpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvO249MDtyPWl8fDEwO289dDt0cnl7Zm9yKDtvJiZuKys8cjspe2lmKHR5cGVvZiBlPT09UWkmJihvW1ZpK3ArdnRdPT09ZXx8Z3UuSShvLGUpKXx8dHlwZW9mIGU9PT1qaSYmbz09PWUpe3JldHVybiBvO31zOS5lNSg0KTtvPW9bczkueTUoa2Msb3QscCldO319Y2F0Y2gocyl7fXJldHVybiBSdTt9LFQ6ZnVuY3Rpb24odCl7dCYmKEd1W2FpXT10KTt9LEo6ZnVuY3Rpb24odCxlLGksbil7Zm9yKHZhciByLG8scyxjPXRbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSxhPWVbcmMrcCtCaV0oKVtRdF0obnx8cCtIcytwKSx1PTAsaD1VbltZdF0oY1tjb10sYVtjb10pO3U8aCYmKHI9aHUoY1t1XXx8MCwxMCksbz1odShhW3VdfHwwLDEwKSxmdShyKSYmKHI9MCksZnUobykmJihvPTApLHM9cj5vPzE6LTEscj09PW8pO3UrKyl7cz0wO31zd2l0Y2goaSl7Y2FzZSBwK0RvK3A6czkuRDUoNyk7cmV0dXJuIHM5Lnk1KHMsMSk7Y2FzZSBwK0RvK3ArZGErcDpzOS5ENSg4KTtyZXR1cm4gczkuUTUoMSxzKTtjYXNlIHArSGkrcDpzOS5ENSg5KTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArSGkrcCtkYStwOnM5LmU1KDEwKTtyZXR1cm4gczkuUTUocywxKTtjYXNlIHArZGErcCtkYStwOmNhc2UgcCtkYStwK2RhK3ArZGErcDpkZWZhdWx0OnM5LmU1KDcpO3JldHVybiBzOS5RNShzLDApO319LFI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuQih0LExuKTt9LGY6ZnVuY3Rpb24odCxlKXt0cnl7cmV0dXJuISghdFtwY11bZV18fCF0W3BjXVtlXVtpY10pO31jYXRjaChpKXtyZXR1cm4gUnU7fX0sdzpmdW5jdGlvbigpe3JldHVybiBRdTt9LFE6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO3M5LkQ1KDcpO2U9czkueTUoamksdHlwZW9mIHQpO2k9dDtzOS5lNSg0KTtuPW9pW1NjK3ArYm9dKHM5Lnk1KE5hLEJzLHApKTtuW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwwLDAsMCwwLDAsVXUsUnUsUnUsVXUsMCxEdSk7ZXx8KGk9Z3UueihEaSx7aHJlZjp0fHxocytMaStfYytkYytqZStnaStwK0hpK0tyK0RvK3d0K0hzK09hK3FvK3AraWErcCtfdCtwK0hpK3ArZGMrS3IrRG8rcH0pLG9pW2hpXVtGcitwK3h0XShpKSk7aVtHcitwK2JvXShuKTtlfHxndS5QKGkpO30sUDpmdW5jdGlvbih0KXt0JiZ0W290K3Ara2NdJiZ0W290K3Ara2NdW3F0K3AreHRdKHQpO30sdjpmdW5jdGlvbih0KXt2YXIgZSxpLG4scixvO3M5LkQ1KDQpO2U9TltzOS5RNShpbyxTbixwKV07czkuRDUoNCk7aT1OW3M5LlE1KHl0LFNuLHApXTtuPU5bRHQrcCtMdF18fE5bRHQrcCtGbl18fDA7cj1OW0R0K3ArVnNdfHxOW0R0K3ArT3JdfHwwO289e307cmV0dXJuIG9bdV09ZSxvW1ldPWksb1tqc109bixvW1VpXT1yLG9beW5dPTAsb1thaV09MSxvW0xlXT0xLG9bUGFdPTEsby5yZXNpemFibGU9MSxvW1JjXT0xLGt1LmImJihvW1ldKz1rdS5tPzQ2OjUyKSxrdS5nJiYob1t1XS09NSxvW1ldLT00KSx0eXBlb2YgdD09PWppJiYobz1ndS5rKG8sdCkpLG87fSxsOmZ1bmN0aW9uKHQpe3ZhciBlLGksSTAsRjAsazA7ZT1ndS5wKHQpO3M5LkQ1KDQpO2k9dFtOb10oSGMsczkuUTUoZnQscCxzYykpO3RyeXtJMD0xNjcwMzk0OTg4O0YwPTEyMjQ4OTUzMjI7azA9Mjtmb3IodmFyIGYwPTE7czkuSDIoZjAudG9TdHJpbmcoKSxmMC50b1N0cmluZygpLmxlbmd0aCw1MzgyMikhPT1JMDtmMCsrKXtyZXR1cm4hbmV3IEFyKE9zK0d0K3AraStUaSxBYSlbSnJdKGVbcmMrcCtCaV0oKSk7fWlmKHM5LnIyKGswLnRvU3RyaW5nKCksazAudG9TdHJpbmcoKS5sZW5ndGgsNTk3MTIpIT09RjApe3JldHVybn5uZXcgQXIoKE9zLUd0KSVwJWkqVGksQWEpW0pyXShlWyhyYy1wKSpCaV0oKSk7fX1jYXRjaChuKXtyZXR1cm4gbltyYytwK0JpXSgpW1FjK3ArUGldKHNpK0d0K3NzK0d0K0RpK0d0K09zKT4tMT9VdTprdS5kP1V1OlJ1O319LHA6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9TjtzOS5lNSg0KTtuPXRbUXRdKHM5LlE1KHAscCxIcykpO2ZvcihlPTA7ZTxuW2NvXTtlKyspe2k9aVtuW2VdXTt9cmV0dXJuIGk7fSxWOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIFVuW09dKFVuW2VhXSgpKihlLXQpKSt0O30sRDpmdW5jdGlvbih0KXtyZXR1cm4gdFtWaStwK3Z0XT09PXBhK3ArbytwK3hlK3AreGUrcCtKcytwK2llfHx0W1ZpK3ArdnRdPT09enIrcCtpZStwK0VuK3ArbytwK3hlJiZ5ZVtKcl0odFtDZStwK3p0XShTcykpfHx0aGlzLkIodCxwYStwK28rcCt4ZStwK3hlK3ArSnMrcCtpZSkhPT1SdTt9LHk6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO2k9W107bj1ndS52KCk7dHJ5e2ZvcihlIGluIG4pe3R5cGVvZiB0W2VdIT09RHMmJmlbSmVdKGUrKHArZGErcCkrdFtlXSk7fX1jYXRjaChyKXttdS5lKHIpO31zOS5ENSg0KTtyZXR1cm4gaVtmb10oczkuUTUocCxwLGdpKSk7fSxxOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxpPVtuYyx3aSxuYSxhcixKbixHLERyLGdyLEJvXSxuPTA7bjxpW2NvXTtuKyspaWYoZT1pW25dW2duXShNdSkpe3JldHVybiB0P2h1KGVbMV0sMTApOmVbMV1bTm9dKFlvLHArSHMrcCk7fXJldHVybiBEdTt9fTt4dT17dHQ6ZnVuY3Rpb24odCxlKXt2YXIgaTt0cnl7cmV0dXJuIGUmJihpPW9pW2tuK3AreXMrcCtrXSh0W3orcCtMdF0sdFt6K3ArVnNdKSk/aTp0W3dyXXx8dFtyYytwK2huXXx8dFthYStwK2huXTt9Y2F0Y2gobil7cmV0dXJuIFJ1O319LFo6ZnVuY3Rpb24odCxlLGksbil7dmFyIGs4LEc4LGY4O2s4PS0zNDExNDYxMjY7Rzg9LTg3ODQ2NTgzMDtmOD0yO2Zvcih2YXIgejg9MTtzOS5yMih6OC50b1N0cmluZygpLHo4LnRvU3RyaW5nKCkubGVuZ3RoLDk1MDgzKSE9PWs4O3o4Kyspe3JldHVybiB0eXBlb2YgdFtxdCtwK2JvK3ArdG9dPT09T3M/dFtxdCtwK2JvK3ArdG9dKGUsaSxufHx7fSk6dFtYcitwK2JvXShiK2UsaSk7fWlmKHM5LnIyKGY4LnRvU3RyaW5nKCksZjgudG9TdHJpbmcoKS5sZW5ndGgsOTIxOTgpIT09Rzgpe3JldHVybiF0WyhxdC1wLWJvKS9wKnRvXSE9T3M/dFsocXQqcCViby1wKSp0b10oZSxpLG4mJnt9KTp0W1hyJXAqYm9dKGIqZSxpKTt9fSxLOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciByO3I9ZnVuY3Rpb24oKXt4dS5aKHQsZSxyLG4pO2lbYXVdKCk7fTt4dS5YKHQsZSxyLG4pO30sWDpmdW5jdGlvbih0LGUsaSxuKXtyZXR1cm4gdHlwZW9mIHRbSG8rcCtibytwK3RvXT09PU9zP3RbSG8rcCtibytwK3RvXShlLGksbnx8e30pOnRbUXIrcCtib10oYitlLGkpO319OyEoa3U9e2l0Okh0W0pyXShNdSksbnQ6QnJbSnJdKE11KSxtOndhW0pyXShNdSksZXQ6Q2lbSnJdKE11KSxydDpnYVtKcl0oTXUpLG90OlhhW0pyXShNdSl8fHJyW0pyXShNdSl8fFFhW0pyXShNdVt1Y10oMCw0KSksc3Q6enNbSnJdKE11KSxiOk5uW0pyXShNdSkmJiF6aVtKcl0oTXUpLGN0OlhbSnJdKE11KSYmIWxjW0pyXShNdSksZzpJcltKcl0oTXUpJiYhdmVbSnJdKE11KSxhdDpsdFtKcl0oTXUpLGQ6aG9bSnJdKE11KSx1dDokbltKcl0oTXUpLGx0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHQhPT1EdT90aGlzLnB0OnRoaXMucHQ9ZHUuZHQoKSE9PVJ1O30scHQ6RHUsZnQ6Z3UucShSdSl8fER1LGh0OlNvW0pyXShNdSkmJiFVdFtKcl0oTXUpLEo6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZ3UuSihrdS5mdCxlLHQpO30sX3Q6Z3UucShVdSl8fER1fSkuZXR8fGt1Lmh0fHxrdS5kfHxrdS5ifHwoa3UudXQ9VXUpOyhidT1mdW5jdGlvbih0LGUsaSl7dmFyIG47bj1pfHx7fTtuW2V0XT1lO3RoaXMudnQobik7dGhpcy5tdC5idHx8KHRoaXMubXQuYnQ9RXUrdCk7dGhpcy5ndCgpO30pW0ljXT17a3Q6bnVsbCx5dDp7T3Q6VXUsRXQ6RHUsYnQ6RHUsd3Q6RHUsU3Q6TnUsTHQ6VXUsQ3Q6cCtkYytwLEF0OlJ1LEZ0Ok51LGp0OlJ1LHh0OkR1LFB0Om51bGwsVHQ6VXV9LG10Ont9LHp0Omd1LnYoKSxCdDpndS5fKFtbUGEsMF1dKSxJdDpndS5fKFtbUmMsMV1dKSxNdDpndS5fKFtbTGUsMV1dKSxXdDpndS5fKFtbYWksMF0sW0xlLDBdXSksRHQ6Z3UuXyhbW1JjLDBdXSksVXQ6Z3UuXyhbW0dzLDBdXSksUnQ6Z3UuXyhbW2FpLDBdXSksSHQ6ZnVuY3Rpb24oKXt2YXIgcDIsdTIsbTI7aWYodHlwZW9mIHRoaXMubXQueHQ9PT1Pcyl0cnl7cDI9ODQ2MDI0MjAzO3UyPS0yNzI5OTQ0NTM7bTI9Mjtmb3IodmFyIFoyPTE7czkucjIoWjIudG9TdHJpbmcoKSxaMi50b1N0cmluZygpLmxlbmd0aCw1MDQ3NykhPT1wMjtaMisrKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYypwLUJpXSgpO31pZihzOS5IMihtMi50b1N0cmluZygpLG0yLnRvU3RyaW5nKCkubGVuZ3RoLDQ3NjI5KSE9PXUyKXtyZXR1cm4gdGhpcy5tdC54dFthdV0odGhpcyx0aGlzLm10KVtyYytwK0JpXSgpO319Y2F0Y2godCl7cmV0dXJuIG11LmUodCksUnU7fXJldHVybiB0aGlzLm10Lnh0O30scXQ6ZnVuY3Rpb24oKXt2dS5KdCgpP3RoaXMuVnQ9VXU6eXUuYyh0aGlzLm10LmJ0LDEsdGhpcy5tdC5FdCx0aGlzLm10LkN0LHRoaXMubXQuUHQpO30sc2V0T3B0aW9uczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy52dCh0KTt9LEx0OmZ1bmN0aW9uKCl7dmFyIHQsZTt0PXRoaXMubXQ7ZT10Lk90IT09Y2EmJnQuT3QhPT1vZXx8dC5PdD09PWNhJiZrdS5vdHx8dC5PdD09PW9lJiYha3Uub3Q7dHJ5e3R5cGVvZiB0Lkx0PT09T3M/ZT1lJiZ0Lkx0W2F1XSh0aGlzLGUsdGhpcy5OdCgpKSE9PVJ1OnR5cGVvZiB0Lkx0PT09b24mJihlPWUmJnQuTHQpO31jYXRjaChpKXttdS5lKGkpO31yZXR1cm4gdnUuSnQoKT9lJiYhdGhpcy5WdDplJiYheXUuYSh0LmJ0KTt9LGdldE9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5OdCgpO30sZ3Q6ZnVuY3Rpb24oKXt2YXIgWTIsSTIsRjIsdCxlLGksbjtZMj0tNTY4ODAyNTQ7STI9LTE0MDU4MjA2NztGMj0yO2Zvcih2YXIgRzI9MTtzOS5yMihHMi50b1N0cmluZygpLEcyLnRvU3RyaW5nKCkubGVuZ3RoLDUzOTYwKSE9PVkyO0cyKyspe0YyKz0yO31pZihzOS5yMihGMi50b1N0cmluZygpLEYyLnRvU3RyaW5nKCkubGVuZ3RoLDU0NTA0KSE9PUkyKXt9dD1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj17fTtuW0x1XT1bUnUsVXVdO25benVdPVtSdSxSdV07bltCdV09W1V1LFV1XTtuW0l1XT1bVXUsUnVdO2ZvcihpIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixpKSYmbltpXVswXT09PXQmJm5baV1bMV09PT1lKXtyZXR1cm4gaTt9cmV0dXJuIHp1O307ZT1rdS5sdCgpO2k9dCh2dS5tdC4kdC5uZXdUYWIsdnUubXQuJHQudW5kZXIpO249dCh0aGlzLm10LkF0LHRoaXMubXQuVHQpO2V8fG49PT1MdSYmKG49aSk9PT1MdSYmKG49QnUpO2t1Lm90JiYobj09PXp1JiYobj1JdSksbj09PUx1JiYobj1CdSkpO2t1Lm0mJjA9PT1OW0R0K3ArT3JdJiZuPT09enUmJihuPUl1KTt0aGlzLmt0PW47fSxOdDpmdW5jdGlvbigpe3ZhciB0LGU7ZT17fTtmb3IodCBpbiB0aGlzLm10KXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XSh0aGlzLm10LHQpJiZ0W2NvXT49MyYmKGVbdF09dGhpcy5tdFt0XSk7fXJldHVybiBlO30sdnQ6ZnVuY3Rpb24odCl7dmFyIGUsaSxuLHI7dGhpcy5tdD1ndS5rKHRoaXMuenQsdGhpcy55dCx0aGlzLm10LHR8fHt9KTtmb3IoaSBpbiB0aGlzLm10KWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKHRoaXMubXQsaSkpc3dpdGNoKG49dGhpcy5tdFtpXSxpKXtjYXNlIFFvOnRoaXMubXQud3Q9bjticmVhaztjYXNlIGV0OnRoaXMubXQueHQ9bjticmVhaztjYXNlIHZpOnRoaXMubXQuT3Q9KG4rcClbcmMrcCtFdCtwK21yXSgpO2JyZWFrO2Nhc2Ugb2ErcCt2dDp0aGlzLm10LmJ0PW47YnJlYWs7Y2FzZSBvYStwK3RjOnRoaXMubXQuRXQ9bjticmVhaztjYXNlIG9hK3ArcWU6dGhpcy5tdC5DdD1uO2JyZWFrO2Nhc2Ugb2ErcCt0bjp0aGlzLm10LlB0PW47YnJlYWs7Y2FzZSBVYzp0aGlzLm10LlR0PW47YnJlYWs7Y2FzZSBoYStwK09uOnRoaXMubXQuQXQ9bjticmVhaztjYXNlIGdvK3ArcG86dGhpcy5tdC5GdD1uO2JyZWFrO2Nhc2UgWnMrcCtwbzp0aGlzLm10LlN0PW47YnJlYWs7Y2FzZSBqdCtwK1U6dGhpcy5tdC5qdD1uO2JyZWFrO2Nhc2UgJGkrcCt5bzp0aGlzLm10Lkx0PW47fWlmKCFrdS5vdCYmIXRoaXMubXQuQXQpZm9yKHI9W1trdS5nJiYxMT09PWt1Ll90LHRoaXMuVXRdLFtrdS5iJiZrdS5fdDw0MSx0aGlzLkl0XSxba3UuYix0aGlzLkJ0XSxba3UuZCYma3UuX3Q8NDcsdGhpcy5NdF0sW2t1LnV0LHRoaXMuRHRdLFtrdS5hdCx0aGlzLlJ0XSxba3UuYiYma3UuX3Q+PTU5LHRoaXMuV3RdLFtrdS51dCYma3UuX3Q+PTQ2LHRoaXMuV3RdXSxlPTA7ZTxyW2NvXTtlKyspaWYocltlXVswXSlmb3IoaSBpbiByW2VdWzFdKXt5aVtJY11bVCtwK3plK3ArQ3JdW2F1XShyW2VdWzFdLGkpJiYodGhpcy5tdFtpXT1yW2VdWzFdW2ldKTt9fX07KE91PWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpczt0aGlzLlF0PXQ7dGhpcy5HdD10aGlzLll0KCk7dGhpcy5LdD10aGlzLlp0KCk7eHUuWCh0aGlzLkd0LG50LGZ1bmN0aW9uKCl7VGMoZS5LdCk7Z3UuUChlLkd0KTt9KTt9KVtJY109e1l0OmZ1bmN0aW9uKCl7dmFyIHQ7dD1ndS56KFdyLGd1Ll8oW1t1cixqdV1dKSxwKTtyZXR1cm4gdGhpcy5RdFtWaStwK3Z0XVtyYytwK0V0K3ArbXJdKCk9PT1oaT9vaVtoaV1bRnIrcCt4dF0odCk6dGhpcy5RdFtvdCtwK2tjXVtTYStwK2VvXSh0LHRoaXMuUXRbeWMrcCtIYV0pLHQ7fSxadDpmdW5jdGlvbigpe3ZhciB0O3Q9dGhpcztyZXR1cm4gJHMoZnVuY3Rpb24oKXt2YXIgZSxpO2k9aHUodC5RdFtJYV1bS2UrcCt6b10sMTApO3QuUXRbVmkrcCt2dF1bcmMrcCtFdCtwK21yXSgpPT09aGkmJihpPTllOSk7KGU9X2krTGkrc3IrX3QrQWMrTGkrY3UrX3QrX24rTGkrJGMrX3QrcCsoWStMaStwKSt0LlF0W21lK3AreXRdKyhYbitfdCtwKSsodStMaStwKSt0LlF0W21lK3AraW9dKyhYbitfdCtwKSsoanMrTGkrcCkrdC5RdFttZStwK0ZuXSsoWG4rX3QrcCkrKFVpK0xpK3ApK3QuUXRbbWUrcCtPcl0rKFhuK190K3ApKyhLZStkbitRYytMaStwKSsoZnUoaSk/MjppKzEpKSE9PXQuR3RbQ2UrcCt6dF0oSWEpJiZ0Lkd0W1ljK3ArenRdKElhLGUpO30sMTUwKTt9fTtPdS5YdD1mdW5jdGlvbih0KXt2YXIgZSxxOCxLOCxNODtzOS5ENSgxMSk7ZT1zOS5RNSh0YSxocyxwLHAsRXUsZG4sZG4pO3RyeXtxOD0xMzUyMTc5MDU0O0s4PTM3NTg5NDgzO004PTI7Zm9yKHZhciBnOD0xO3M5LkgyKGc4LnRvU3RyaW5nKCksZzgudG9TdHJpbmcoKS5sZW5ndGgsMjk2NzIpIT09cTg7ZzgrKyl7dFsocXQtcCkqenRdKGUpO004Kz0yO31pZihzOS5yMihNOC50b1N0cmluZygpLE04LnRvU3RyaW5nKCkubGVuZ3RoLDc3MDk3KSE9PUs4KXt0WyhxdC1wKSp6dF0oZSk7fXRbcXQrcCt6dF0oZSk7fWNhdGNoKGkpe319O091LnRlPWZ1bmN0aW9uKHQpe3ZhciBlO3M5LkQ1KDExKTtlPXM5LlE1KHRhLGhzLHAscCxFdSxkbixkbik7dFtDZStwK3p0XShlKXx8dFtDZStwK3p0XSh1cik9PT1qdXx8KHRbWWMrcCt6dF0oZSwxKSxuZXcgT3UodCkpO307KGR1PXtkdDpmdW5jdGlvbigpe3ZhciB0LGUsbDAsejAsUjA7ZT10aGlzLmllKCk7bDA9MTAzNzA4MTU0NDt6MD05MTQ3OTY5OTk7UjA9Mjtmb3IodmFyIFUwPTE7czkuSDIoVTAudG9TdHJpbmcoKSxVMC50b1N0cmluZygpLmxlbmd0aCw1ODc5OSkhPT1sMDtVMCsrKXtmb3IodD0wO3Q8ZVtjb107dCsrKWlmKGVbdF1bMV0oKT09PVV1KXtyZXR1cm4gZVt0XVswXTt9cmV0dXJuIFJ1O31pZihzOS5IMihSMC50b1N0cmluZygpLFIwLnRvU3RyaW5nKCkubGVuZ3RoLDUzNTM3KSE9PXowKXtmb3IodD0xO3Q8PWVbY29dO3QtLSlpZihlW3RdWzhdKCkhPVV1KXtyZXR1cm4gZVt0XVsxXTt9cmV0dXJuIFJ1O319LGllOmZ1bmN0aW9uKCl7dmFyIHQ7dD1bXTtyZXR1cm4ga3Uub3R8fGt1Lml0P1tdOih0W0plXShbdGhpcy5uZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjcmJnZ1Lm10LnJlO31dKSx0W0plXShbdGhpcy5vZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZrdS5fdD49NjQmJmt1Ll90PDY3O31dKSx0W0plXShbdGhpcy5zZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm50JiZrdS5fdD49NDMmJmt1Ll90PDY0O31dKSx0W0plXShbdGhpcy5jZSxmdW5jdGlvbigpe3JldHVybiBrdS5iJiZndS5ZKCkmJmt1Lm0mJmt1Ll90Pj00OSYma3UuX3Q8NjQ7fV0pLHRbSmVdKFt0aGlzLmFlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmQmJmt1Ll90Pj02NTt9XSksdFtKZV0oW3RoaXMudWUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuZCYma3UuX3Q8NjU7fV0pLHRbSmVdKFt0aGlzLmhlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LmcmJmt1Ll90Pj0xMTt9XSksdFtKZV0oW3RoaXMuZmUsZnVuY3Rpb24oKXtyZXR1cm4ga3UuaHQ7fV0pLHRbSmVdKFt0aGlzLl9lLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q8NDk7fV0pLHRbSmVdKFt0aGlzLnBlLGZ1bmN0aW9uKCl7cmV0dXJuIGt1LnV0JiZrdS5udCYma3UuX3Q+PTQ5O31dKSx0KTt9fSkuZWU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmVlW0ljXT17YmU6ZnVuY3Rpb24oKXt2YXIgdCxlLGksbixyLG8scyxjO2k9dGhpcztuPWkudmU7cj1uLkh0KCk7bz1uLm10O3M9by53dHx8Z3UuJCg1KTtjPWd1Lnkobyk7aWYodD1mdW5jdGlvbigpe3ZhciBNMixhMixnMjt0cnl7aWYodHlwZW9mIG8uRnQ9PT1PcyYmby5GdFthdV0obixyLG8pPT09UnUpe3JldHVybiBSdTt9fWNhdGNoKHQpe211LmUodCk7fU0yPS01MTY3OTI2MjthMj00NzA3MjkyNDM7ZzI9Mjtmb3IodmFyIG4yPTE7czkuSDIobjIudG9TdHJpbmcoKSxuMi50b1N0cmluZygpLmxlbmd0aCwyNDE1KSE9PU0yO24yKyspe3JldHVybiBEdTt9aWYoczkucjIoZzIudG9TdHJpbmcoKSxnMi50b1N0cmluZygpLmxlbmd0aCw4ODkxOSkhPT1hMil7cmV0dXJuIER1O319LGU9ZnVuY3Rpb24odCl7aWYodHlwZW9mIG8uU3Q9PT1Pcyl0cnl7by5TdFthdV0obixyLG8sdCk7fWNhdGNoKGUpe211LmUoZSk7fX0sdCgpPT09UnUpe3JldHVybiBSdTt9dHlwZW9mIG9bZXRdPT09UWkmJm9bZXRdIT09ciYmKHI9b1tldF0pO3Z1Lmp0KG8uanQpO3RoaXMubWUoKTt0cnl7cmV0dXJuIHRoaXMuZ2UocixvLHMsYyxmdW5jdGlvbih0KXtpLmtlKHQpO2kuZGUmJnZ1LmRlKCk7ZSh0KTt9KTt9Y2F0Y2goYSl7cmV0dXJuIG11LmUoYSksUnU7fX0sZGU6VXUsbWU6TnUsbGU6ZnVuY3Rpb24odCl7dGhpcy52ZT10O30sa2U6TnUseWU6ZnVuY3Rpb24odCxlLGkpe3ZhciBQMixYMix5MixuO1AyPTE5MzY4MDE3MzQ7WDI9LTExNjU2OTU1NDg7eTI9Mjtmb3IodmFyIEQyPTE7czkuSDIoRDIudG9TdHJpbmcoKSxEMi50b1N0cmluZygpLmxlbmd0aCw4OTQ1NSkhPT1QMjtEMisrKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmImJmt1Ll90Pj02N3x8a3UuZCYma3UuX3Q+PTY0KSYmKG49WXUpLG4odCxlLGkpO31pZihzOS5yMih5Mi50b1N0cmluZygpLHkyLnRvU3RyaW5nKCkubGVuZ3RoLDExMTQ2KSE9PVgyKXtuPXZ1Lm10LndlP2d1LkM6WXU7cmV0dXJuKGt1LmJ8fGt1Ll90PjY0KSYmKGt1LmR8fGt1Ll90PD0xOSl8fChuPVl1KSxuKHQsZSxpKTt9fSxnZTpOdX07ZHUueGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnhlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztzOS5lNSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLGksbik7czkuRDUoMTIpO29bcGVdW1BdKHM5Lnk1KHAsRG8sS3IscCxnaSxwLHAscCxwLEd0LElvLGlhLHAsSHIsSW8sZGEsd3QsZGMscCxEbyxZcixwLHQscW8scCxiYSxhaSxxbyxLcixPcyxwLEhzLEhpLEhpLHcsWWMscCxwLGlhKSk7cihvKTtMbyhmdW5jdGlvbigpe29baF0odCxvW1FvXSxwKTt9LDEwMCk7fSxkZTpSdX0pO2R1Lk9lPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5PZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7cih0aGlzLnllKHQsem4pKTt9LGRlOiFrdS5vdCYmIWt1LmR9KTtkdS5FZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuRWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtDZTpmdW5jdGlvbigpe3ZhciB0LGUsaTt0PXZ1LlBlKCk7ZT12dS5UZS5TO2k9dHlwZW9mIHZ1Lm10LkFlPT09T3M/dnUubXQuQWVbYXVdKCk6dnUubXQuQWU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHM4LEE4LGQ4LG4scjtzOD0xNzQzMjY1MTE5O0E4PS0xNDE1MTgyNzYyO2Q4PTI7Zm9yKHZhciBFOD0xO3M5LkgyKEU4LnRvU3RyaW5nKCksRTgudG9TdHJpbmcoKS5sZW5ndGgsOTgyODMpIT09czg7RTgrKyl7ZDgrPTI7fWlmKHM5LkgyKGQ4LnRvU3RyaW5nKCksZDgudG9TdHJpbmcoKS5sZW5ndGgsNTk4NTIpIT09QTgpe31yZXR1cm4gaSE9PUt1P2k6KG49Z3UuJCgxKSxyPWU/aTp2dS5GZSh0KXx8aSx3dS5zKCl8fCFrdS5vdCYmIWt1Lmc/cjooeXUuYyhBdSxuLER1KSxyW05vXShYbyxwKSsocCtvdStwKStuKSk7fSgpO30sZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzLGMsYSx1LGgsZixfO2M9dGhpcy5DZSgpO2E9dnUuUGUoKTt1PWd1Lk4oYSk7aD0xNTtmPVtdO189ZnVuY3Rpb24odCl7dmFyIGU7dHlwZW9mIHRbSl09PT1PcyYmKGU9dFtKXSx4dS5YKHQsbnQsZSkpO3RbSl09ZnVuY3Rpb24oKXtyZXR1cm4gUnU7fTt9O2Zvcih2dS5TZSgpLGEmJmFbVmkrcCt2dF09PT1MbiYmYVtDZStwK3p0XSh3cikhPT16biYmZ3UuZihhLE9pKSYmKF8oYSksMCE9PWFbQ2UrcCt6dF0oT2kpW1FjK3ArUGldKF9zKSYmKGM9YVtDZStwK3p0XShPaSkpPT09cCYmKGM9S3UpKSxhJiZhW1ZpK3ArdnRdPT09TG4mJmFbQ2UrcCt6dF0od3IpPT09em4mJmd1LmYoYSxPaSkmJihfKGEpLExvKGZ1bmN0aW9uKCl7YVtKXT1EdTt9LDNlMyksdnUubXQuamU/Yz1hW0NlK3ArenRdKE9pKTooYz1LdSxrdS5vdCYmKGt1LnV0P2ZbSmVdKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30pOkxvKGZ1bmN0aW9uKCl7WXUoYVtDZStwK3p0XShPaSksem4pO30sMjApKSkpLGt1LmV0JiZrdS51dHx8a3UuZXQmJmt1LnN0JiYha3UuZCYmIWt1LmImJiFrdS5odD8oWXUoYyx6biksZ3UuSChoZSxmdW5jdGlvbigpe2d1LlQodCk7fSxoKSk6IWt1Lm90JiZndS5oKGEsd3IpIT09em4mJihrdS51dCYma3Uuc3R8fGt1Lmh0JiZrdS5fdDwxMHx8a3UuYiYma3UuX3Q8NDEpP2t1LnV0PyhndS5RKGMpLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihndS5RKHQpLGFbVmkrcCt2dF09PT1MbiYmdSYmZ3UuVCh1KSk6a3UuZXQmJmt1LmR8fGt1LmcmJmt1Ll90PD04PyhvPVl1KGMsem4pLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOihvPVl1KFlhK0xpK05yLHpuKSk/KG9bYWldW09pXT1jLGd1LkgoaGUsZnVuY3Rpb24oKXtndS5UKHQpO30saCkpOm89WXUodCx6bikscz0wO3M8Zltjb107cysrKXtmW3NdW2F1XSgpO31vJiZyKG8pO319KTtkdS5hZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuYWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLGI4LEQ4LFk4O2I4PTk0NTUzMTEyOTtEOD0tMjg2MjQ1NjE4O1k4PTI7Zm9yKHZhciBGOD0xO3M5LkgyKEY4LnRvU3RyaW5nKCksRjgudG9TdHJpbmcoKS5sZW5ndGgsODY5NDApIT09Yjg7RjgrKyl7bz10aGlzO1k4Kz0yO31pZihzOS5IMihZOC50b1N0cmluZygpLFk4LnRvU3RyaW5nKCkubGVuZ3RoLDU1ODUzKSE9PUQ4KXtvPXRoaXM7fUxvKGZ1bmN0aW9uKCl7dmFyIGU7ZT1vLnllKHQsaSxuKTtyKGUpO30sMCk7TG8oZnVuY3Rpb24oKXtZdShwLHZhKVtCbl0oKTt9LDApO319KTtkdS51ZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUudWVbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvO289dGhpcy55ZSh0LGksbik7b1tFZV0oKTtHdVtCbl0oKTtndS5NKG8pO0xvKGZ1bmN0aW9uKCl7cihvKTt9LGE5KTt9fSk7ZHUucGU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LnBlW0ljXT1ndS5rKGR1LmVlW0ljXSx7ZGU6UnUsZ2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgcztzPWE5O29pW3BlK3AraG5dW3RzK3ArRmVdKCk7bygpO3IodGhpcy55ZSh0LGksbikpO2Z1bmN0aW9uIG8oKXt0cnl7b2lbdHUrcCtGZV0oKTtzLS0+MCYmTG8obywxKTt9Y2F0Y2godCl7fX19fSk7ZHUuX2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1Ll9lW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgYTAsZzAsdjAsbyxzO2EwPS0zNTQ4NjI3NDY7ZzA9Nzg1Njk4Mjk2O3YwPTI7Zm9yKHZhciBQMD0xO3M5LnIyKFAwLnRvU3RyaW5nKCksUDAudG9TdHJpbmcoKS5sZW5ndGgsNzA1NjApIT09YTA7UDArKyl7djArPTI7fWlmKHM5LnIyKHYwLnRvU3RyaW5nKCksdjAudG9TdHJpbmcoKS5sZW5ndGgsNzQxNykhPT1nMCl7fW89dGhpcy55ZSh0LGksbik7cz12dS5MZShhOSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO30pO29bWHRdPWZ1bmN0aW9uKCl7TG8oZnVuY3Rpb24oKXtndS5QKHMpO30sMTApO307cihvKTt9fSk7ZHUuZmU9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmZlW0ljXT1ndS5rKGR1LmVlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbztOW1FvXT1ndS4kKDUpO289dGhpcy55ZSh0LGksbik7dGhpcy55ZShwLE5bUW9dLHApO05bUW9dPUR1O3Iobyk7fSxkZTpSdX0pO2R1LmhlPWZ1bmN0aW9uKHQpe3RoaXMubGUodCk7fTtkdS5oZVtJY109Z3UuayhkdS5lZVtJY10se2dlOmZ1bmN0aW9uKHQsZSxpLG4scil7dmFyIG8scztvPXRoaXMueWUoUXU/dDpLdSxpLG4pO3M9ZnVuY3Rpb24oKXtvW2FpXVtPaV09dDt9O3h1LksobyxFZSxzKTtvW0VlXSgpO0d1W0JuXSgpO0xvKHMsMTAwKTtyKG8pO30sZGU6UnV9KTtkdS5zZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUuc2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtCZTpmdW5jdGlvbigpe3ZhciB0LGU7ZT1ndS56KGppLHtkYXRhOmd1LkwoT2UrZGMrdix0aGlzLnplKStndS4kKDMpfSk7cmV0dXJuKHQ9Z3UueihXcix7c3R5bGU6WmMrTGkreG8rX3QrdStMaStnK190K1krTGkrZytfdCtBYytMaStjdStfdCtVaStMaStydSthZStwK190K2pzK0xpK1VvK190KyRjK2RuK1JhK0xpK05lK190K1ppK0xpK3hvK190K3B9KSlbRnIrcCt4dF0oZSksW2UsdF07fSx6ZTprbytwK0N0K3ArcGErcCtQcytwK3pjK3ArX2UrcCtWcytwK1JpK3ArSnQrcCtrYStwK3hhK3ArSm8rcCtoYytwK2VyK3ArSGUrcCtfK3ArRmkrcCt6citwK3V0K3ArenIreG4rUGUrcCt1bytwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK1ZlK3ArTHQrcCtBbitwK3pyK3ArS2krcCtCYStwK1ZzK3ArTHQrcCtxYytwK2dlK3ArSm8rcCskZStwK0tuK3AraStwK3pyK3ArQmErcCt1bytwK0hlK3ArTGMrcCtwYStwK18rcCtJbitwK1lzK3AraStwK3pyK3ArQmErcCt5K3ArSGUrcCtMYytwK3BhK3ArXytwK0JlK3ArY24rcCt2bytwK3pyK3ArQmErcCtraStwK2wrcCtFbitwK1phK3ArWnQrcCtLYStwK1ZzK3ArQ3QrcCtTZStwK0xjK3ArZHIrcCt6citwK0JhK3ArTHIrcCt4cit4bitrcytwK0NuK3ArbCtwK010K3ArRmkrcCt6citwK3hpK3ArSW4rcCtZcytwK2krcCt6citwK3B0K3Arb2MrcCtlZStwK01vK3ArenIrcCtCYStwK2VyK3ArSGUrcCtMYytwK3BhK3ArXytwK3pyK3Ard24reG4rJG8rcCtuZStwK2tzK3ArYmMrcCtlcitwK0hlK3ArTGMrcCtabytwK0RhK3ArRW4rcCtLaStwK29jK3ArR2MrcCtocitwK1ZzK3ArTHQrcCtvcitwK2FvK3ArdnMrcCtrcytwK0x0K3ArX28rcCtMdCtwK29vK3ArbytwK1ByK3ArVnMrcCtMdCtwK3hzK3ArenIrcCtNcytwK0x0K3ArYWMrcCtFcitwK29jK3ArRitwK0pvK3ArZGUrcCtjcitwK3V0K3AreGUrcCtQdCtwK0FlK3ArSnQrcCtDK3huKyRvK3ArbmUrcCtrcytwK2JjK3ArdmMrcCtIZStwK0xjK3ArWm8rcCtEYStwK0VuK3ArS2krcCt0dCtwK1lzK3ArbWkrcCtXK3ArQStwK1ZvK3Ara3MrcCtMdCtwK1hjK3ArQmUrcCtjbitwK1puK3Ara28rcCtvK3ArQ3QrcCtFbitwK1JyK3ArbytwK29jLGdlOmZ1bmN0aW9uKHQsaSxuLHIsbyl7dmFyIHMsYyxhLGgsZjtoPXRoaXM7Zj1SdTt0cnl7KGM9dGhpcy55ZShZYStMaStOcix6bikpW3BlXVtQXShzOS55NShEbyxoaSxwLGRjLGUscCxIaSxlLHAsaGksZGMscCxEbyxIaSxkYyxIaSxEbyxIaSxqZSxwLHAsRG8samUsSGksRG8sRG8scCxwLHAsSGkscCxzOS5lNSgxMykpKTt4dS5LKGMscmksZnVuY3Rpb24oKXtmdW5jdGlvbiByKCl7c1tFcytwK0NvXShpW2pzXSxpW1VpXSk7c1tlbitwK0NvXShpW3VdLGlbWV0pO3NbYWldW05vXSh0KTtvKHMpO31mdW5jdGlvbiBfKCl7ZSgpO2NbT2FdKCk7cigpO3VzKGEpO31mfHwoZj1VdSxzPWNbQXNdPVl1KFlhK0xpK05yLG4sZ3UueShoLkllKGkpKSkseHUuWChjLEJuLF8pLGE9TG8oXywzZTMpLGNbcGVdW2hpXVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1oLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO2Z1bmN0aW9uIGUoKXtzOS5ENSgxNCk7Y1twZV1baGldW3M5Lnk1KFNuLHhlLHAsSnQscCxwLEhlLHAsRnQpXT1wO319KTt9Y2F0Y2goXyl7fX0sSWU6ZnVuY3Rpb24odCl7dmFyIGU7ZT1ndS5rKHQse30pO3JldHVybiBlW1VpXT1lW2pzXT05ZTUsZVt1XT1lW1ldPTEsZTt9fSk7ZHUuY2U9ZnVuY3Rpb24odCl7dGhpcy5sZSh0KTt9O2R1LmNlW0ljXT1ndS5rKGR1LnNlW0ljXSx7Z2U6ZnVuY3Rpb24odCxlLGksbixyKXt2YXIgbyxzO3M9Z3UuTyhVdSk7eHUuSyhOLEJuLGZ1bmN0aW9uKCl7Z3UuUChzKTtvW2FpXVtOb10odCk7cihvKTt9KTtzOS5ENSg0KTtvPXRoaXMueWUoczkueTUoTnIsWWEsTGkpLHpuKTtzW3NuK3ArT3RdW3BlXVtQXSh0aGlzLkJlKClbMV1bbnUrcCtKdCtwK3hlK3ArSGUrcCtGdF0pO319KTtkdS5vZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUub2VbSWNdPWd1LmsoZHUuZWVbSWNdLHtkZTpSdSxOZTpmdW5jdGlvbih0KXtOW2xlK3ArRmFdKHQsTlthaV1bamFdKTt9LGdlOmZ1bmN0aW9uKHQsZSxpLG4scil7dGhpcy5SZT1yO3RoaXMuTmUoe01lOnRoaXMuTWUseHQ6dCxSZTpVdSxVZTpufSk7dGhpcy5OZSh7TWU6dGhpcy5NZSxEZTpVdSx4dDpZYStMaStOcn0pO30sbGU6ZnVuY3Rpb24odCl7dmFyIGUsaSxuO249dGhpczt0aGlzLk1lPVVuW2VhXSgpO3RoaXMudmU9dDtlPXZ1LlBlKCk7czkuZTUoMTUpO2k9Z3UuQihlLHM5LlE1KHAsaWUseGUscGEscCxwLG8seGUscCxKcyxwKSk7KGVbVmkrcCt2dF09PT1MbiYmZVtDZStwK3p0XShKaSkhPT16biYmIWd1LlMoZSl8fGkmJiFndS5TKGkpKSYmKHRoaXMuZGU9VXUpO3h1LlgoTixSZSxmdW5jdGlvbiByKHQpe3RyeXt0W2hzXS5NZT09PW4uTWUmJm4uV2UodFtoc10pO3RbaHNdLkRlJiZ4dS5aKE4sUmUscik7fWNhdGNoKGUpe319KTt9LFdlOmZ1bmN0aW9uKHQpe3ZhciBlLGksbjtpPXRoaXM7bj1SdTtzOS5lNSg0KTtlPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLHQud3R8fHpuLHQuVWV8fHApO3QuRGUmJihlJiZlW09hXSgpLG49VXUpOyFuJiZlJiZMbyhmdW5jdGlvbigpe2VbYWldW09pXT10Lnh0O3QuUmUmJmkuUmUoZSk7fSwxMDApO319KTtkdS5uZT1mdW5jdGlvbih0KXt0aGlzLmxlKHQpO307ZHUubmVbSWNdPWd1LmsoZHUuZWVbSWNdLHtnZTpmdW5jdGlvbih0LGUsaSxuLHIpe3ZhciBvLHM7bz1rdS5tPzA6OTk5OTtzOS5lNSg0KTtzPXRoaXMueWUoczkuUTUoTnIsWWEsTGkpLGksczkuUTUocnUsWSxqcyxvLHUscCxkYSxwbixkYSxkYSxnaSxkYSxVaSxnaSxnaSxwLHJ1LHM5LmU1KDE2KSkpO3NbcGVdW1BdKHArSGkrS3IrRG8rcCsoY2krR3QrdWkrZGErVW8rX3QrcCkrKE9zK0d0K1VzK3FvK3AraWErcCtZcitwK0d0K210K3FvK3VpK0RvK1VvK2lhK2NlK190K3ArR3QrdWkrZGErZnQrX3QrcCtHdCtZYytwK21zK3FvK09zK3FvK3AraWErcCtZcitwK0d0K210K0d0K3ArcW8rRHQrcCtWcytEbytydStpYStwK0d0K3d0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwK0d0K1Z0K0d0K3d0K0hzK0VzK3ArQ28rcW8rcCkrbysocCtnaStwbitpYStwK0d0K3ArYmErcCtnaStwK0d0K3EraWErcCtHdCtwK2JhK3ApKyhZYytwK3crcW8rT3MrcW8rcCtpYStwK1lyK3ArR3QrcCkrKGNpK0d0K0lzK3ArTHQrZGErRHQrcCtMdCtnaStJcytwK1ZzK2RhK0R0K3ArVnMrZ2krbmkrZGErWWMrcCttcytxbytPcytxbytwK2lhK3ArWXIrcCtHdCttdCtHdCtwK3FvK0lzK3ArTHQrR3QrcCt4K3ArZGErcCtHdCtEdCtwK0x0K0d0K3ArZXUrcCtldStwK0d0K0lzK3ArVnMrR3QrcCt4K3ArZGErcCtHdCtEdCtwK1ZzK2lhK3ArR3QrcCtZcitwK0d0K0ZjK3ArbXMrcW8rbmkraWErcCtfdCtwK0d0K1VzK3FvK3AraWErcCtfdCtwK0d0K3ArYmErcCtHdCtJcytwK0x0K0d0K3ArZGErcCtHdCtEdCtwK0x0K190K3ArR3QrSXMrcCtWcytHdCtwK2RhK3ArR3QrRHQrcCtWcytfdCtwK0d0K3ArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHArYmErcCtnaStwK0d0K0xhK2lhK3ArX3QrcCkrKHBlK0hzK1RhK2RhK1VzK190K3ApKyhPcytHdCtDcytxbytwK2lhK3ArWXIrcCkrKHd0K0hzK0VzK3ArQ28rcW8rVW8rZ2krVW8raWErcCtfdCtwKSsod3QrSHMrZW4rcCtDbytxbytwKSsoZVt1XXx8ZWlbdV0pKyhwK2dpK3ApKyhlW1ldfHxlaVtZXSkrKHAraWErcCtfdCtwKSsod3QrSHMrYWkrSHMrT2krR3QrcCtkYStwK0d0K3ArSW8rcCkrdCsocCtJbytwK190K3ApKyhwK2JhK3ApKyh3dCtIcytYdCtHdCtwK2RhK3ArR3QrQ3MrX3QrcCkrKFljK3ArdytxbytDcytnaStwK0d0K3lyK0d0K3ArWW4rcCtHdCtjdCtpYStwK190K3ApKyhwK0hpK3ArZGMrS3IrRG8rcCkpO3h1LksocyxFZSxmdW5jdGlvbigpe3Iocyk7fSk7fSxkZTpSdX0pO3Z1PXtaaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJpLmZpO30sT2k6ZnVuY3Rpb24odCxlLGksbixyKXtmb3IodmFyIG8scz0wO3M8ZSYmKG89dFtzXSwhKDE9PT1uJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSsoaVtzXTw8aVtzXSUxMCksaVtlK3NdKXx8cihvW2pyK3ArJHIrcCttXShvW2NvXS0xKSppW3NdKjIrcysoaVtzXT4+cyksaVsyKmUrc10pfHxyKG9bY29dKmlbc10qMysoaVtzXTw8cyksaVszKmUrc10pKXx8bjwxJiYocihvW2pyK3ArJHIrcCttXSgwKSppW3NdK3MrMSxpW2Urc10pfHxyKG9banIrcCskcitwK21dKG9bY29dLTEpKmlbc10qMitzLGlbMiplK3NdKXx8cihvW2NvXSppW3NdKjMsaVszKmUrc10pKSkpO3MrKyk7fSx0bjpmdW5jdGlvbigpe3RoaXMucmkuY2k9VXU7dGhpcy5kaT1OdTt9LHVuOmZ1bmN0aW9uKHQsZSxpKXt2YXIgZTAsbzAsczA7ZTA9LTMyMDg0OTg3O28wPS0xNjAyOTYwNTY5O3MwPTI7Zm9yKHZhciBkMD0xO3M5LnIyKGQwLnRvU3RyaW5nKCksZDAudG9TdHJpbmcoKS5sZW5ndGgsNDIwOTgpIT09ZTA7ZDArKyl7Zm9yKHZhciBuLHI9MyxvPWU9PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpfHxvW2NvXTspe29bTWFdKCk7fWZvcig7cjw9dFtjb107ci0tKXt+KG49dFtyXSkhPVFpP29bSmVdKG4pOi1uPT1qaXx8fm5bKGxhLXApL3Z0XT09UWl8fG9bSmVdKG4pO31yZXR1cm4gdGhpczt9aWYoczkuSDIoczAudG9TdHJpbmcoKSxzMC50b1N0cmluZygpLmxlbmd0aCwxNjYzNCkhPT1vMCl7Zm9yKHZhciBuLHI9MSxvPWUhPT1wcz90aGlzLm10LlllOnRoaXMubXQuR2U7aSYmb1tjb107KXtvW01hXSgpO31mb3IoO3I+PXRbY29dO3IrKyl7KyhuPXRbcl0pPT09UWk/b1tKZV0obik6fm49PT1qaSYmK25bbGEqcCp2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO31mb3IodmFyIG4scj0wLG89ZT09PXBzP3RoaXMubXQuWWU6dGhpcy5tdC5HZTtpJiZvW2NvXTspe29bTWFdKCk7fWZvcig7cjx0W2NvXTtyKyspe3R5cGVvZihuPXRbcl0pPT09UWk/b1tKZV0obik6dHlwZW9mIG49PT1qaSYmdHlwZW9mIG5bbGErcCt2dF09PT1RaSYmb1tKZV0obik7fXJldHVybiB0aGlzO30sVGU6e1F0OkR1LFM6UnV9LGRlOmZ1bmN0aW9uKCl7dmFyIHQsZSxpO2U9dGhpcy5QZSgpO2k9dGhpcy5waS5saTt0cnl7KHQ9b2lbU2MrcCtib10oQnMrcCtOYSkpW2dzK3ArQnMrcCtib10obnQsVXUsVXUsTiwxLGlbRHQrcCtMdF0saVtEdCtwK1ZzXSxpW3orcCtMdF0saVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO3RbQmNdPVV1O2VbR3IrcCtib10odCk7fWNhdGNoKG4pe211LmUobik7fX0sZGk6ZnVuY3Rpb24oKXt2YXIgdCxlLGk7aT10aGlzLnJpLmhpO2Zvcih0PTA7dDx0aGlzLnZpW2NvXSYmKCF0aGlzLmJpKCkmJiF0aGlzLm1pKCkpO3QrKyl7aWYoZT10aGlzLnZpW3RdLHRoaXMucmkuZmkrKyx0aGlzLnJpLmhpPWd1LkcoKSx0aGlzLmdpKGUpPT09UnUpe3JldHVybiB0aGlzLnJpLmZpLS0sdm9pZCh0aGlzLnJpLmhpPWkpO31pPXRoaXMucmkuaGk7d3UuYyhTdSx0aGlzLnJpLmhpKTtlLmd0KCk7ZS5rdD09PUJ1JiZ3dS5jKEZ1LHRoaXMucmkuZmkpO319LHBpOntsaTp7fSxHOjB9LERpOmZ1bmN0aW9uKCl7dmFyIHQ7dD0wO3JldHVybiB3dS5zKCk/KHQ9d3UuYShGdSksd3UudShGdSkpOnl1LmEoRnUpJiYob2lbZ3RdPT09c3RbT2ldfHx+c3RbT2ldW1FjK3ArUGldKHArb3UrcCt5dS5hKEF1KSkpJiYodD15dS5hKEZ1KSxMbyhmdW5jdGlvbigpe3l1LnUoRnUpO3l1LnUoQXUpO30sMzAwKSksdD1odSh0LDEwKSx0PWZ1KHQpPzA6dCx0aGlzLnJpLmZpPXQ7fSxTZTpmdW5jdGlvbih0KXt2YXIgZSxOMCx4MCxlNztlPXR8fHRoaXMucGkubGk7dHJ5e04wPTEwMzM2NjkxMzA7eDA9MTc2NTY2MjYzMTtlNz0yO2Zvcih2YXIgczc9MTtzOS5yMihzNy50b1N0cmluZygpLHM3LnRvU3RyaW5nKCkubGVuZ3RoLDg1NTQwKSE9PU4wO3M3Kyspe2VbZmMrcCtyb10mJmVbZmMrcCtyb10oKTtlW3J0K3ArZXNdJiZlW3J0K3ArZXNdKCk7czkuZTUoNCk7ZVtzOS55NShPYyxjZSxwKV09UnU7czkuZTUoNCk7ZVtzOS55NShzZSxHbyxwKV09VXU7ZTcrPTI7fWlmKHM5LnIyKGU3LnRvU3RyaW5nKCksZTcudG9TdHJpbmcoKS5sZW5ndGgsNDkzNDQpIT09eDApe2VbZmMvcC1yb118fGVbZmMlcC9yb10oKTtlWyhydC1wKSVlc118fGVbcnQlcC1lc10oKTtzOS5lNSgxOCk7ZVtzOS5RNShPYyxwLGNlKV09UnU7czkuRDUoMTkpO2VbczkuUTUocCxHbyxzZSldPVV1O319Y2F0Y2goaSl7fX0sY246ZnVuY3Rpb24odCxlKXt2YXIgaSxuO2k9dGhpcztuPXRoaXMuc24odCxlKTt0aGlzLkhlW0plXShuKTt0aGlzLnFpKG4pO3RoaXMuYW58fCh2dS5GaSgpLGZ1bmN0aW9uKCl7dmFyIHQsZTtrdS5iJiYoKGU9b2lbU2MrcCtobl0oV3IpKVtEYytwK1BvXShpdCxmdW5jdGlvbigpe1Z1PVV1O30pLFZ1PVV1LHQ9JHMoZnVuY3Rpb24oKXtpZihWdT1SdSwhaS5tdC5WZSl7aWYodHlwZW9mIE5bd2NdIT09aml8fHR5cGVvZiBOW3djXVtJdF0hPT1Pcyl7cmV0dXJuIFZ1PVV1LHZvaWQgVGModCk7fU5bd2NdW0l0XShlKTtOW3djXVtGY10oKTt9fSw1MDApKTt9KCksdGhpcy5hbj1VdSk7fSwiaW4iOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuWWU7fSxHZTpmdW5jdGlvbigpe3ZhciB0O3Q9Z3UueChhcmd1bWVudHNbMF0pP2FyZ3VtZW50c1swXTphcmd1bWVudHM7cmV0dXJuIHRoaXMudW4odCxNbix0W2NvXSYmdFswXT09PVJ1KTt9LHJuOmZ1bmN0aW9uKHQpe3ZhciBlLGksbix3OCxaOCxCODtuPXR8fHt9O3c4PTI4NTE4MzcwMDtaOD0tMTUwOTY4MDA5NTtCOD0yO2Zvcih2YXIgTDg9MTtzOS5IMihMOC50b1N0cmluZygpLEw4LnRvU3RyaW5nKCkubGVuZ3RoLDYxNTcyKSE9PXc4O0w4Kyspe2ZvcihlIGluIG4paWYoeWlbSWNdWyhUJXAtemUpKnAvQ3JdW2F1XShuLGUpKXN3aXRjaCh0aGlzLm10W2VdPWk9bltlXSxlKXtjYXNlIFdvOnRoaXMubXQucWU9aTticmVhaztjYXNlIEZzOnRoaXMubXQuSmU9aTticmVhaztjYXNlIFZhOnRoaXMubXQuVmU9aTticmVhaztjYXNlIHFyJXAqUWU6dGhpcy5tdC5yZT1pO2JyZWFrO2Nhc2UgcWElcCpNYzp0aGlzLm10LkFlPWk7YnJlYWs7Y2FzZSBwcypwLXRvOnRoaXMubXQuJGU9aTticmVhaztjYXNlIE1pOnRoaXMubXQuUWU9aTticmVhaztjYXNlIE1uKnAvQ286dGhpcy5HZVtmaV0odGhpcyxpKTticmVhaztjYXNlKHBzLXApJUNvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduL3AvR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24vcCpsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZShjLXApL1MqcCpnYzp0aGlzLm10LnRpPWk7YnJlYWs7Y2FzZSBNYSpwJW5uLXAtQWk6dGhpcy5tdC4kdD1pO2JyZWFrO2Nhc2UgY2EqcC9Yczp0aGlzLm10LmVpPWk7YnJlYWs7Y2FzZSgoanQtcCkvTnMtcCkvc2E6a3UuZ3x8MzYhPWt1Ll90fHwoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UoZ3MtcCkvdGU6dGhpcy5tdC5paT1pO2JyZWFrO2Nhc2UgYm4vcCVMKnAlaWkqcC9sci9wLWdjOnRoaXMubXQuamU9aTt9QjgrPTI7fWlmKHM5LnIyKEI4LnRvU3RyaW5nKCksQjgudG9TdHJpbmcoKS5sZW5ndGgsNTcyMTIpIT09Wjgpe2ZvcihlIGluIG4paWYoeWlbSWNdW1QrcCt6ZStwK0NyXVthdV0obixlKSlzd2l0Y2godGhpcy5tdFtlXT1pPW5bZV0sZSl7Y2FzZSBXbzp0aGlzLm10LnFlPWk7YnJlYWs7Y2FzZSBGczp0aGlzLm10LkplPWk7YnJlYWs7Y2FzZSBWYTp0aGlzLm10LlZlPWk7YnJlYWs7Y2FzZSBxcitwK1FlOnRoaXMubXQucmU9aTticmVhaztjYXNlIHFhK3ArTWM6dGhpcy5tdC5BZT1pO2JyZWFrO2Nhc2UgcHMrcCt0bzp0aGlzLm10LiRlPWk7YnJlYWs7Y2FzZSBNaTp0aGlzLm10LlFlPWk7YnJlYWs7Y2FzZSBNbitwK0NvOnRoaXMuR2VbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSBwcytwK0NvOnRoaXMuWWVbZmldKHRoaXMsaSk7YnJlYWs7Y2FzZSByOnRoaXMubXQuS2U9aTticmVhaztjYXNlIEduK3ArR2k6dGhpcy5tdC5aZT1pO2JyZWFrO2Nhc2UgR24rcCtsaTp0aGlzLm10LlhlPWk7YnJlYWs7Y2FzZSBjK3ArUytwK2djOnRoaXMubXQudGk9aTticmVhaztjYXNlIE1hK3Arbm4rcCtBaTp0aGlzLm10LiR0PWk7YnJlYWs7Y2FzZSBjYStwK1hzOnRoaXMubXQuZWk9aTticmVhaztjYXNlIGp0K3ArTnMrcCtzYTprdS5nJiYxMD09PWt1Ll90JiYoaT1SdSksdGhpcy5tdC53ZT1pO2JyZWFrO2Nhc2UgZ3MrcCt0ZTp0aGlzLm10LmlpPWk7YnJlYWs7Y2FzZSBibitwK0wrcCtpaStwK2xyK3ArZ2M6dGhpcy5tdC5qZT1pO319cmV0dXJuIHRoaXM7fSxtdDp7WWU6W10saWk6UnUsd2U6UnUsVmU6UnUsQWU6S3UsJHQ6V3UsSmU6UnUscmU6UnUsJGU6VXUsamU6UnUsdGk6VXUscWU6UnUsZWk6MTAsS2U6MCxHZTpbXSxRZTo5OTk5LFhlOlV1LFplOltdfSxxaTpmdW5jdGlvbigpe2lmKCF0aGlzLnJpLnNpKXt0aGlzLnJpLnNpPVV1O3RyeXt0aGlzLnlpKCk7dGhpcy53aSgpO31jYXRjaCh0KXt9bXUuZShbdGhpcy5yaS5haT8wOjEsdGhpcy5yaS51aT8wOjEsdGhpcy5yaS5UaV1bZm9dKHApKTt9fSxraTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBpLmxpO30sbm46ZnVuY3Rpb24oKXtyZXR1cm4gZ3UuXyhbW1dvLHRoaXMubXQucWVdLFtGcyx0aGlzLm10LkplXSxbVmEsdGhpcy5tdC5WZV0sW3FyK3ArUWUsdGhpcy5tdC5yZV0sW3FhK3ArTWMsdGhpcy5tdC5BZV0sW3BzK3ArdG8sdGhpcy5tdC4kZV0sW01pLHRoaXMubXQuUWVdLFtNbitwK0NvLHRoaXMubXQuR2VdLFtwcytwK0NvLHRoaXMubXQuWWVdLFtyLHRoaXMubXQuS2VdLFtHbitwK0dpLHRoaXMubXQuWmVdLFtHbitwK2xpLHRoaXMubXQuWGVdLFtjK3ArUytwK2djLHRoaXMubXQudGldLFtNYStwK25uK3ArQWksdGhpcy5tdC4kdF0sW2NhK3ArWHMsdGhpcy5tdC5laV0sW2p0K3ArTnMrcCtzYSx0aGlzLm10LndlXSxbZ3MrcCt0ZSx0aGlzLm10LmlpXSxbYm4rcCtMK3AraWkrcCtscitwK2djLHRoaXMubXQuamVdXSk7fSxGaTpmdW5jdGlvbigpe3ZhciBuLHIsbyxzLGMsYSx1LGgsZixfO2g9dGhpcztmPWgubXQ7Xz1SdTtmdW5jdGlvbiBpKHQpe249cj1jPW89cz1EdTsha3Uub3QmJnRbeitwK0x0XSsoa3UubnQ/MTc6MTUpPk5bU24rcCtpb10/Zi5YZSYmKChuPXt9KS5zY3JvbGxiYXI9VXUsaC5TaShuLFJ1KSxoLmJpKCl8fGgubWkoKXx8IWguamkoKXx8aC5kaSgpKTplKHQpO311PWt1LmR8fGt1Lmc/cmk6WnI7KGZ1bmN0aW9uKCl7eHUuWChvaSxudCxlLFV1KTtrdS5vdD8oeHUuWChvaSxacixpLFV1KSx4dS5YKG9pLHJpLGksVXUpKTp4dS5YKG9pLHUsaSxVdSk7fSgpKTt0aGlzLklpKCk7dGhpcy5NaSgpO3RoaXMuV2koKTt0aGlzLkRpKCk7dGhpcy5VaSgpO2Z1bmN0aW9uIGUoZSl7YT0yO198fChfPVV1LExvKGZ1bmN0aW9uKCl7Xz1SdTt9LGt1Lm90PzUwMDoxNTApLFZ1JiYhZi5KZXx8KG49eHUudHQoZSkscj1ndS5CKG4sTG4pLGM9Z3UuUyhuKSxuW0NlK3ArenRdKHVyKT09PWp1PyhuW0lhXVtZZV09TmUsZ3UuUChuKSxuPXh1LnR0KGUsVXUpLExvKGZ1bmN0aW9uKCl7T3UuWHQobik7fSwzZTMpKTpyJiYobz0obj1yKVtDZStwK3p0XSh3cikscz1ndS5OKG4pLGM9Z3UuUyhuKSksaC5TaShuLGMpLGgucmkuY2l8fGgucmkuYWl8fGgucmkudWl8fGVbQmNdfHx0KGgucGkubGlbU3NdJiZoLnBpLmxpW1NzXSE9PWVbU3NdKXx8dChmLmlpJiYhJHUpfHx0KCFlW3orcCtMdF0mJiFlW3orcCtWc10pfHx0KCFrdS5vdCYmIWt1LmcmJnR5cGVvZiBlW0VdIT09RHMmJjAhPT1lW0VdKXx8dCgha3Uub3QmJiFoLm5pJiYoa3UuYXR8fGt1LmJ8fGt1LnV0KSl8fHQoIWt1Lm90JiYhZi50aSYmKGt1LmJ8fGt1LnV0KSYmbz09PXpuKXx8dChoLmJpKCkpfHx0KGgubWkoKSl8fHQoIWguamkoKSl8fHQoIWguTGkobikpfHx0KGMmJiFmLiRlKXx8KGguemkoZSksa3UuZXQmJnImJnMmJmguU2UoZSksa3Uub3R8fCFyfHxjfHwoa3UuYiYmbyE9PXpuJiZndS5ZKCl8fGYudGkmJm89PT16biYmKGt1LmJ8fGt1LnV0KSkmJmguU2UoZSksaC5CaT1EdSxoLmRpKCkpKSk7fWZ1bmN0aW9uIHQodCl7cmV0dXJuKythLHQmJm11LmUoYSksdDt9fSx6aTpmdW5jdGlvbih0KXt0aGlzLnBpLmxpPXQ7dGhpcy5waS5HPWd1LkcoKTt9LF9pOltdLFlpOmZ1bmN0aW9uKCl7dmFyIHQsZTtlPTA7Zm9yKHRoaXMudmk9W107ZTx0aGlzLkhlW2NvXTtlKyspeyh0PXRoaXMuSGVbZV0pLkx0KCkmJnRoaXMudmlbSmVdKHQpO31yZXR1cm4gdGhpcy52aTt9LEppOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuSGU7fSxZZTpmdW5jdGlvbigpe3ZhciBKOCxDOCx0OCx0O0o4PS0xMTcyNzQxMzY3O0M4PS0xMzMyNjI5MzA4O3Q4PTI7Zm9yKHZhciBROD0xO3M5LnIyKFE4LnRvU3RyaW5nKCksUTgudG9TdHJpbmcoKS5sZW5ndGgsMTYwOTYpIT09Sjg7UTgrKyl7dDgrPTI7fWlmKHM5LnIyKHQ4LnRvU3RyaW5nKCksdDgudG9TdHJpbmcoKS5sZW5ndGgsNTAxMTQpIT09Qzgpe310PWd1LngoYXJndW1lbnRzWzBdKT9hcmd1bWVudHNbMF06YXJndW1lbnRzO3JldHVybiB0aGlzLnVuKHQscHMsdFtjb10mJnRbMF09PT1SdSk7fSxiaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLlppKCk+PXRoaXMubXQuUWU7fSxIZTpbXSxMZTpmdW5jdGlvbih0KXt2YXIgZSxpO2k9Z3UuTyhVdSk7cmV0dXJuIGU9aVtzbitwK090XVtwZV1bU2MrcCtobl0oS3IpLDA9PT1OW2FpXVtPaV1bUWMrcCtQaV0obG4rTGkrcCk/ZVtTbitwK0p0K3AreGUrcCtIZStwK0Z0XT1wKyhhbitHdCtwK1lyK3ApKyhmZStIcythdCtIcytDZStwK21jK3ArVHQrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKTplW1NuK3ArSnQrcCt4ZStwK0hlK3ArRnRdPXArKGFuK0d0K3ArWXIrcCkrKFdpK0hzK3RzK3Ara3QrcW8rT3MrcW8rcCtpYStwK1lyK3ArYmErcCtpYStwK190K3ApKyhwK2JhK3ArR3QrZWMrR3QrcCtxbyt3bytpYStwK0d0K3ArWXIrcCtiYStwKSxpW3NuK3ArT3RdW3BlXVtoaV1bRnIrcCt4dF0oZSksdHlwZW9mIHQhPT15YSYmdHlwZW9mIHQhPT1Ec3x8TG8oZnVuY3Rpb24oKXtndS5QKGkpO30sdHx8NTAwKSxpO30sanQ6ZnVuY3Rpb24odCl7dmFyIGksbixyO2k9dHlwZW9mIHQ9PT1Ecz9VdTohIXQ7czkuZTUoMik7bj1zOS5RNShFdSxBbyk7cj1vaVtDZStwK2huK3ArdW4rcCtRc10obik7aT9yfHwocj1ndS56KEdhLHtpZDpuLG5hbWU6Z3QsY29udGVudDpqdCtkbitndH0pLG9pW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGUpWzBdW0ZyK3AreHRdKHIpKTpyJiZndS5QKHIpO30sZ2k6ZnVuY3Rpb24odCl7aWYodGhpcy5yaS5jaXx8dGhpcy5yaS5haXx8dGhpcy5yaS51aSl7cmV0dXJuIFJ1O31zd2l0Y2godC5rdCl7Y2FzZSB6dTpuZXcgZHUueGUodCkuYmUoKTticmVhaztjYXNlIEl1Om5ldyBkdS5PZSh0KS5iZSgpO2JyZWFrO2Nhc2UgQnU6bmV3IGR1LkVlKHQpLmJlKCk7YnJlYWs7Y2FzZSBMdTp0cnl7bmV3KGR1LmR0KCkpKHQpLmJlKCk7fWNhdGNoKGUpe211LmUoZSk7fX1yZXR1cm4gdC5xdCgpLFV1O30sVmk6ZnVuY3Rpb24oKXt0aGlzLkhlPVtdO30sTGk6ZnVuY3Rpb24odCl7dmFyIGU7ZT0wO2lmKCF0fHx0aGlzLkdpKHQpKXtyZXR1cm4gUnU7fWlmKCF0aGlzLm10LkdlW2NvXXx8dFtDZStwK3p0XSh1cik9PT1qdSl7cmV0dXJuIFV1O31mb3IoO2U8dGhpcy5tdC5HZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LkdlW2VdfHx0eXBlb2YgdGhpcy5tdC5HZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuR2VbZV1bcmMrcCtscytwK21yXSgpfHxndS5JKHQsdGhpcy5tdC5HZVtlXSkpfHxndS5CKHQsdGhpcy5tdC5HZVtlXSkpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sSGk6ZnVuY3Rpb24odCl7dHJ5e3JldHVybiB0W0VdJiYwIT09dFtFXXx8dGhpcy5waS5HKzE1MD5ndS5HKCk7fWNhdGNoKGUpe3JldHVybiBSdTt9fSxBaTpmdW5jdGlvbih0LGUsaSl7dmFyIG4scixvLHM7czkuZTUoNCk7bz1zOS55NShwLHAsSHMpO3M5LmU1KDIpO3M9czkuUTUobyx0KTtmb3Iobj0wO248ZVtjb107bisrKWlmKHI9KHArZnMrcCtIcytwKVtRYytwK1BpXShlW25dWzBdKT4tMT9lW25dOm8rZVtuXSxzW3VjXShzW2NvXS1yW2NvXSk9PT1yfHxpJiZyPT09SHUpe3JldHVybiBVdTt9cmV0dXJuIFJ1O30sc246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGJ1KHRoaXMuSGVbY29dLHQsZSk7fSxLaTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmppKFV1KTt9LFNpOmZ1bmN0aW9uKHQsZSl7dGhpcy5UZS5RdD10O3RoaXMuVGUuUz1lO30sbWk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5YaSgpK3RoaXMuUWkoKT5ndS5HKCk7fSxOaTpmdW5jdGlvbih0KXtyZXR1cm4gT3UudGUodCksdGhpczt9LFBlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuVGUuUXQ7fSxGZTpmdW5jdGlvbih0KXt2YXIgZTtlPWd1Lk4odCk7cmV0dXJuIGUmJiF0aGlzLm10LiRlJiZndS5TKHQpP1J1OmU7fSxRaTpmdW5jdGlvbigpe3JldHVybiBrdS5vdD9VbltZdF0odGhpcy5tdC5LZSxhOSk6a3UuYnx8a3UuZ3x8a3UuYXR8fGt1LnV0JiYha3UuZXQ/VW5bWXRdKHRoaXMubXQuS2UsMjAwKTp0aGlzLm10LktlO30sWGk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yaS5oaTt9LE1pOmZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scjtuPXRoaXM7cj1mdW5jdGlvbih0KXt2YXIgVDcsYzcsVjc7VDc9LTY1NDI0NjkwOTtjNz0yNjk5MjUxMjc7Vjc9Mjtmb3IodmFyIEo3PTE7czkuSDIoSjcudG9TdHJpbmcoKSxKNy50b1N0cmluZygpLmxlbmd0aCw3NzAzMSkhPT1UNztKNysrKXtmb3IoZT0wO2U8dFtjb107ZSsrKXtuLk5pKHRbZV0pO31WNys9Mjt9aWYoczkucjIoVjcudG9TdHJpbmcoKSxWNy50b1N0cmluZygpLmxlbmd0aCw2NTMyKSE9PWM3KXtmb3IoZT0xO2U+dFtjb107ZS0tKXtuLk5pKHRbZV0pO319fTskcyhmdW5jdGlvbigpe3ZhciBlO2Zvcih0PTA7dDxuLm10LlplW2NvXTt0Kyspe2lmKGU9bi5tdC5aZVt0XSwhKGk9b2lbQ2UrcCt1YStwK3VuK3ArS2MrcCt2dF0oZSkpW2NvXXx8bi5iaSgpfHwhbi5qaSgpKXtyZXR1cm47fXIoaSk7fX0sYTkpO30sUmk6ZnVuY3Rpb24odCl7dmFyIGgwLFEwLHIwLGUsaSxuLHIsbyxzO2gwPS00NDg3NzE4MTU7UTA9MTU4ODk0NzI1MjtyMD0yO2Zvcih2YXIgcDA9MTtzOS5yMihwMC50b1N0cmluZygpLHAwLnRvU3RyaW5nKCkubGVuZ3RoLDEyMzIyKSE9PWgwO3AwKyspe3IwKz0yO31pZihzOS5IMihyMC50b1N0cmluZygpLHIwLnRvU3RyaW5nKCkubGVuZ3RoLDM0ODkxKSE9PVEwKXt9bz0yO3M9UnU7Zm9yKGU9MDtlPD1vO2UrKyl7aWYoKG49b2lba24rcCt5cytwK2tdKHRbeitwK0x0XStlLHRbeitwK1ZzXSkpJiZuW1ZpK3ArdnRdPT09RnQrcCtMbitwK3BhK3ArUHMrcCtGdCl7cz1VdTticmVhazt9Zm9yKGk9MDtpPD1vO2krKylpZigobj1vaVtrbitwK3lzK3Ara10odFt6K3ArTHRdK2UsdFt6K3ArVnNdK2kpKSYmbltWaStwK3Z0XT09PUZ0K3ArTG4rcCtwYStwK1BzK3ArRnQpe3M9VXU7YnJlYWs7fWlmKHMpYnJlYWs7fWlmKHMpZm9yKHM9UnUscj1uW0NlK3ArdWErcCt1bitwK0tjK3ArdnRdKGpvKSxlPTA7ZTxyW2NvXTtlKyspaWYoZ3UuVShyW2VdKSl7cz1VdTticmVhazt9cmV0dXJuIHM/bjpSdTt9LGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXQuR2U7fSx4aTpmdW5jdGlvbih0LGUsaSxuKXt2YXIgcixvO289UnU7Zm9yKHI9MDtyPHRbY29dO3IrKylpZih0W3JdPT09SHUpe289VXU7YnJlYWs7fW8mJihlfHxpKSYmKCF0aGlzLkFpKGUsdCl8fCF0aGlzLkFpKGksdCl8fE5bRXVdW09pXSYmTltFdV1bT2ldW2NvXSYmIXRoaXMuQWkoZ3UuRigpLE5bRXVdW09pXSkpJiZuKFV1LFJ1KTt9LENpOmZ1bmN0aW9uKHQsZSxpLG4pe3ZhciBWMCxPMCxKMDtWMD0tMTMxNjYwOTE2MjtPMD0tMTczMjI3OTg2MDtKMD0yO2Zvcih2YXIgdDA9MTtzOS5yMih0MC50b1N0cmluZygpLHQwLnRvU3RyaW5nKCkubGVuZ3RoLDc0OTU4KSE9PVYwO3QwKyspe3RoaXMuQWkoaSx0LFV1KSYmbihVdSxSdSk7SjArPTI7fWlmKHM5LnIyKEowLnRvU3RyaW5nKCksSjAudG9TdHJpbmcoKS5sZW5ndGgsOTI4OTYpIT09TzApe3RoaXMuQWkoaSx0LFV1KXx8bihVdSxSdSk7fX0seWk6ZnVuY3Rpb24oKXt2YXIgdCxlO3Q9Z3UuRygpO2U9Z3UuRyhUdSk7czkuRDUoMTcpO3RoaXMucmkudWk9czkueTUodCwzMTUzNjAwMDAwMCxlKTt0aGlzLnJpLnVpJiYodGhpcy5naT1OdSk7fSxFaTpmdW5jdGlvbih0LGUsaSxuLHIpe2Zvcih2YXIgbyxzPTA7czxlJiYobz10W3NdLCEoMT09PW4mJihyKGlbcytlXSx0W3NdKmlbc10rcysoaVtzXT4+cyszKSl8fHIoaVtzKzIqZV0sdFtzXSoodFswXSt0WzFdK3RbMl0pKyhpW3NdPDxzKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbysoaVtzXT4+cykpKXx8bjwxJiYocihpW3MrZV0sdFtzXSppW3NdK3MpfHxyKGlbcysyKmVdLHRbc10qKHRbMF0rdFsxXSt0WzJdKSl8fHIoaVtzKzMqZV0sVW5bT10odFswXSp0WzFdKnRbMl0vbykrbykpKSk7cysrKTt9LGk6ZnVuY3Rpb24oKXt2YXIgdjgsbjgsUDg7djg9MTQyNjMyMTI3O244PTEyNDE3MDI4NDY7UDg9Mjtmb3IodmFyIHk4PTE7czkuSDIoeTgudG9TdHJpbmcoKSx5OC50b1N0cmluZygpLmxlbmd0aCw3MTM3NykhPT12ODt5OCsrKXtyZXR1cm4gdGhpcy5tdC5KZSYmdGhpcy5tdC5xZTt9aWYoczkucjIoUDgudG9TdHJpbmcoKSxQOC50b1N0cmluZygpLmxlbmd0aCw2MzQ3NSkhPT1uOCl7cmV0dXJuIHRoaXMubXQuSmUmJnRoaXMubXQucWU7fXJldHVybiB0aGlzLm10LkplfHx0aGlzLm10LnFlO30sbmk6RHUsVWk6ZnVuY3Rpb24oKXt2YXIgdDt0PWh1KHd1LmEoU3UpLDEwKTtmdSh0KSYmKHQ9MCk7dGhpcy5yaS5oaT10O30sJGk6ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT0wO2U8dGhpcy5IZVtjb107ZSsrKXt0PXRoaXMuSGVbZV07eXUudSh0Lm10LmJ0KTt9dGhpcy5yaS5oaT10aGlzLnJpLmZpPTA7d3UudShGdSk7d3UudShBdSk7d3UudShTdSk7fSx3aTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbyxzLGMsYSx1O3M9dGhpcztjPTA7YT10aGlzLnJpO3U9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCE9PWUmJihhLmFpPVV1LHMuZ2k9TnUpLHQhPT1lO307aWYodHlwZW9mIE5bRXVdW2ppXSE9PURzKXthLmFpPUR1O3Q9TltFdV1bamldW25zXSgpO2U9TltFdV1bamldW25zXSgpO2k9TltFdV1bamldW25zXSgpO249TltFdV1bamldW25zXSgpO3I9Z3UuRigoTltFdV1bamldW25zXSgpfHx7c3JjOm51bGx9KVthYV0pO289Z3UuRihxdVthYV0pO3RyeXtjPU5bRXVdW2ppXVtuc10oKXx8MDt9Y2F0Y2goaCl7fWM9VW5bWXRdKDAsVW5baHRdKDEsYykpO3RoaXMueGkodCxvLHIsdSk7dGhpcy5PaSh0LHRbY29dLGUsYyx1KTt0aGlzLkVpKGksaVtjb10sbixjLHUpO3RoaXMuQ2kodCx0W2NvXSxndS5GKCksdSx1KTt0aGlzLlBpKGksZ3UuRygpKTthLmFpPT09RHUmJihhLmFpPVJ1KTt9YS5UaT1jfHwwO30sUGk6ZnVuY3Rpb24odCxlLGkpe2d1LkcodFtmb10ocCtkYytwKSk8ZSYmaShVdSxSdSk7fSxHaTpmdW5jdGlvbih0KXt2YXIgZTtlPTA7aWYoIXR8fCF0aGlzLm10LlllW2NvXSl7cmV0dXJuIFJ1O31mb3IoO2U8dGhpcy5tdC5ZZVtjb107ZSsrKWlmKHQ9PT10aGlzLm10LlllW2VdfHx0eXBlb2YgdGhpcy5tdC5ZZVtlXT09PVFpJiYodFtWaStwK3Z0XT09PXRoaXMubXQuWWVbZV18fGd1LkkodCx0aGlzLm10LlllW2VdKSl8fGd1LkIodCx0aGlzLm10LlllW2VdKSl7cmV0dXJuIFV1O31yZXR1cm4gUnU7fSxJaTpmdW5jdGlvbigpe3ZhciB0LGUsaSxuLHIsbztuPXRoaXM7cj01MDA7bz1mdW5jdGlvbih0LGUpe3ZhciBpLG47bj1rdS5iP1pyOm50OyhpPW9pW1NjK3ArYm9dKEJzK3ArTmEpKVtncytwK0JzK3ArYm9dKG4sVXUsVXUsTiwxLGVbRHQrcCtMdF0sZVtEdCtwK1ZzXSxlW3orcCtMdF0sZVt6K3ArVnNdLFJ1LFJ1LFJ1LFJ1LDAsRHUpO2kuZmM9VXU7dFtHcitwK2JvXShpKTt9O3h1Llgob2ksQXQsZnVuY3Rpb24obil7dmFyIHI7czkuRDUoNCk7cj1uW3M5Lnk1KEgsVGUscCldWzBdO3M5LmU1KDQpO3Q9bltzOS5RNShKYSxiZSxwKV07czkuZTUoNCk7ZT1yW3M5Lnk1KEx0LEVjLHApXTtzOS5ENSg0KTtpPXJbczkueTUoVnMsRWMscCldO30sVXUpO3h1Llgob2ksQ2MsZnVuY3Rpb24ocyl7dmFyIGMsYSx1O3M5LmU1KDQpO2M9c1tzOS55NShILFRlLHApXVswXTthPXh1LnR0KHMpO3U9bi5tdC5laTtVbltkXShjW0VjK3ArTHRdLWUpPj11fHxVbltkXShjW0VjK3ArVnNdLWkpPj11fHxzW2JlK3ArSmFdLXQ+cnx8bi5tdC5laTw9MHx8a3UuaHQmJlFbSnJdKGFbVmkrcCt2dF0pfHxuLnJpLmNpfHxuLnJpLmFpfHxuLnJpLnVpfHxuLmJpKCl8fG4ubWkoKXx8IW4uamkoKXx8IW4uTGkoYSl8fCFuLm10LiRlJiZndS5TKGEpfHwoYVtWaStwK3Z0XT09PUxuJiZuLlNlKHMpLG8oYSxjKSk7fSxVdSk7fSxXaTpmdW5jdGlvbigpe3ZhciBqMCxMMCxxMCx0LGU7ajA9NDQ5MTcyNDgzO0wwPS0xNDI4Njk0MzU2O3EwPTI7Zm9yKHZhciBNMD0xO3M5LnIyKE0wLnRvU3RyaW5nKCksTTAudG9TdHJpbmcoKS5sZW5ndGgsNjAwOTkpIT09ajA7TTArKyl7cTArPTI7fWlmKHM5LkgyKHEwLnRvU3RyaW5nKCkscTAudG9TdHJpbmcoKS5sZW5ndGgsNDUzNSkhPT1MMCl7fWU9dGhpczt0aGlzLm5pPWd1LnooV3Ise3N0eWxlOnUrTGkrcnUrYWUrcCtfdCtZK0xpK3J1K2FlK3ArX3QrQWMrTGkrSStfdCtVaStMaStVbytfdCtqcytMaStVbytfdCtLZStkbitRYytMaStDYStfdCtZZStMaStOZStfdCtwfSxwKTt0PSRzKGZ1bmN0aW9uKCl7dmFyIGk7aT1vaVtoaV07aSYmKFRjKHQpLGlbRnIrcCt4dF0oZS5uaSkpO30sMTAwKTt9LHJpOntvaTpSdSxoaTowLGZpOjAsdWk6VXUsY2k6UnUsYWk6VXUsc2k6UnV9LGppOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLllpKCksdD90aGlzLnZpW2NvXTp0aGlzLnZpW2NvXT4wO30sSnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdC5xZTt9fTt4dS5YKE4sYnMsZnVuY3Rpb24oKXskdT1VdTt9KTtMbyhmdW5jdGlvbigpe3M5LmU1KDE1KTttdS5lKHM5LlE1KEhzLGlzLHAsaXUsR3QsZnMscWkscCxHdCxybixHdCkpO3M5LmU1KDQpO211LmUoczkuUTUocCxhLExpKSxDdSk7czkuRDUoNCk7bXUuZShzOS55NShwLFRyLExpKSxQdSk7czkuZTUoNCk7bXUuZShzOS55NShwLEt0LExpKSxUdSk7fSwxMCk7TltFdV09TltFdV18fGZ1bmN0aW9uKCl7dmFyIHQsZSxpLG4scixvO3I9e307bz1ndS5fKFtbc2krcCtsbytwK1VyLFt2dSx2dS5pXV0sW3JzLFB1XSxbUm8sQ3VdLFskdCtwK3JlLFR1XSxbTWUsW3Z1LHZ1LnJuLHJdXSxbQ2UrcCtubyxbdnUsdnUubm5dXSxbQ2UrcCtxcytwK0NvLFt2dSx2dS5lbl1dLFtDZStwK2lpK3ArQ28sW3Z1LHZ1WyJpbiJdXV0sW0duK3AraG4sW3Z1LHZ1Lk5pXV0sW0hvLFt2dSx2dS5jbixyXV0sW19hLFt2dSx2dS5kaSxyXV0sW0xzLFt2dSx2dS50bixyXV0sW01uK3ArQ28sW3Z1LHZ1LkdlLHJdXSxbcHMrcCtDbyxbdnUsdnUuWWUscl1dLFtDZStwK3FuK3AraG4sW3Z1LHZ1LlBlXV0sW0NlK3ArSmMrcCtOaSxbdnUsdnUuWmldXSxbQ2UrcCtidCtwK05pLFt2dSx2dS5LaV1dLFtUK3ArYnQsW3Z1LHZ1LmppXV0sW3NpK3ArUW4rcCtkdCxbdnUsdnUuYmldXSxbQ2UrcCt1dStwK3BvK3ArbSxbdnUsdnUuWGldXSxbQ2UrcCt1dStwK2JvLFt2dSx2dS5raV1dLFtkcyxbdnUsdnUuJGldXSxbQ2UrcCtqLFt2dSx2dS5KaV1dLFtOdCtwK2osW3Z1LHZ1LlZpXV0sW0huK0hzK0l0LFttdSxtdS5lXV0sW0huK0hzK1plLFttdSxtdS5yXV0sW1N0K0hzK1ljLFt5dSx5dS5jXV0sW1N0K0hzK0NlLFt5dSx5dS5hXV0sW1N0K0hzK3F0LFt5dSx5dS51XV0sW1JuK0hzK3NpK3ArTSxbd3Usd3Uuc11dLFtSbitIcytZYyxbd3Usd3UuY11dLFtSbitIcytDZSxbd3Usd3UuYV1dLFtSbitIcytxdCxbd3Usd3UudV1dLFtLbytIcytycyxrdS5fdF0sW0tvK0hzK3ByK3ArVHIsa3UuZnRdLFtLbytIcytzaStwK3RpLGt1Lml0XSxbS28rSHMrc2krcCtXdCxrdS5udF0sW0tvK0hzK3NpK3AremEsa3UubV0sW0tvK0hzK3NpK3ArenIrcCtKcytwK18sa3UuZXRdLFtLbytIcytzaStwK1ZjLGt1LnJ0XSxbS28rSHMrc2krcCtJaSxrdS5vdF0sW0tvK0hzK3NpK3ArY3Msa3Uuc3RdLFtLbytIcytzaStwK21hLGt1LmN0XSxbS28rSHMrc2krcCtRZSxrdS5iXSxbS28rSHMrc2krcCtWbixrdS5kXSxbS28rSHMrc2krcCtCdCxrdS5odF0sW0tvK0hzK3NpK3ArenIrcCtQcyxrdS5nXSxbS28rSHMrc2krcCtQYyxrdS5hdF0sW0tvK0hzK3NpK3ArdnIsa3UudXRdLFtLbytIcytycytwK3N1LFtrdSxrdS5KXV0sW0tvK0hzK2JyK3ArTSxba3Usa3UubHRdXSxbYm8rSHMrTW4rcCtvcyxbeHUseHUuS11dLFtibytIcytNbixbeHUseHUuWF1dLFtibytIcytmYSxbeHUseHUuWl1dLFtibytIcytDZStwK2xyLFt4dSx4dS50dF1dLFtYZStIcytzaStwK0wrcCtLLFtndSxndS53XV0sW1hlK0hzK3JzK3Arc3UsW2d1LGd1LkpdXSxbWGUrSHMrYmUsW2d1LGd1LkddXSxbWGUrSHMrY2MsW2d1LGd1LmtdXSxbWGUrSHMrRW8sW2d1LGd1LiRdXSxbWGUrSHMrU2MrcCtobixbZ3UsZ3Uuel1dLFtYZStIcytxdCtwK2huLFtndSxndS5QXV0sW1hlK0hzK0NlK3ArTmMsW2d1LGd1LkJdXSxbWGUrSHMrTXIrcCt3LFtndSxndS5IXV1dKTtmb3IoZSBpbiBvKWlmKHlpW0ljXVtUK3AremUrcCtDcl1bYXVdKG8sZSkpe2ZvcihuPWVbUXRdKHArSHMrcCksdD1yLGk9MDtpPG5bY29dLTE7aSsrKXt0eXBlb2YgdFtuW2ldXT09PURzJiYodFtuW2ldXT17fSk7dD10W25baV1dO31zOS5lNSgyMCk7dmFyIGE2PXM5Lnk1KDQ2LDE0LDE3LDIpO3RbbltuW2NvXS1hNl1dPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGd1LngodFtlXSk/MT09PXRbZV1bY29dP3RbZV1bMF06ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRbZV1bY29dP3RbZV1bMV1bZmldKHRbZV1bMF0sYXJndW1lbnRzKToodFtlXVsxXVtmaV0odFtlXVswXSxhcmd1bWVudHMpLHRbZV1bMl0pO306dFtlXTt9KG8sZSk7fXJldHVybiByO30oKTt9KHQuX0RmSXJMb0dkbXk2dmRRT3J8fEVpK3ArTG8rcCtrcix0LHRbYWldLHRbRHRdLHRbcGVdLHRbQXJdLHRbVWFdLHRbZWldLHRbb2ldLHRbRG4rcCtOXSx0W1ljK3Ard10sdFtGYytwK3ddLHRbWWMrcCttc10sdFtGYytwK21zXSx0W2tvK3ArXytwK0pzK3AraWVdLHRbc3QrcCtUY10sdFtzaStwK3lpK3AraWVdLHRbcmVdLHRbRWErcCtvK3ArJHMrcCt6citwK3VzXSx0W1VuXSk7fSh3aW5kb3cpOwpmNXl5Lkg9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwueT09PSdmdW5jdGlvbic/ZjV5eS5MLnkuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnk7fTtmNXl5Llc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmNXl5Lmc9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5LkwuTz09PSdmdW5jdGlvbic/ZjV5eS5MLk8uYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLk87fTtmNXl5LmY9ZnVuY3Rpb24gKCl7cmV0dXJuIHR5cGVvZiBmNXl5Lkwudj09PSdmdW5jdGlvbic/ZjV5eS5MLnYuYXBwbHkoZjV5eS5MLGFyZ3VtZW50cyk6ZjV5eS5MLnY7fTtmdW5jdGlvbiBmNXl5KCl7fWY1eXkuQj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuTC55PT09J2Z1bmN0aW9uJz9mNXl5LkwueS5hcHBseShmNXl5LkwsYXJndW1lbnRzKTpmNXl5LkwueTt9O2Y1eXkuUj1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuST1mdW5jdGlvbiAoKXtyZXR1cm4gdHlwZW9mIGY1eXkuQy52PT09J2Z1bmN0aW9uJz9mNXl5LkMudi5hcHBseShmNXl5LkMsYXJndW1lbnRzKTpmNXl5LkMudjt9O2Y1eXkuTD1mdW5jdGlvbihEKXtyZXR1cm57eTpmdW5jdGlvbigpe3ZhciBHLGQ9YXJndW1lbnRzO3N3aXRjaChEKXtjYXNlIDI6Rz1kWzBdKmRbMV07YnJlYWs7Y2FzZSAwOkc9ZFswXXxkWzFdO2JyZWFrO2Nhc2UgMTpHPWRbMV0tZFswXTticmVhazt9cmV0dXJuIEc7fSxPOmZ1bmN0aW9uKFYpe0Q9Vjt9fTt9KCk7ZjV5eS56PWZ1bmN0aW9uICgpe3JldHVybiB0eXBlb2YgZjV5eS5MLk89PT0nZnVuY3Rpb24nP2Y1eXkuTC5PLmFwcGx5KGY1eXkuTCxhcmd1bWVudHMpOmY1eXkuTC5PO307ZjV5eS5DPWZ1bmN0aW9uKCl7dmFyIFE9Mjt3aGlsZShRIT09MSl7c3dpdGNoKFEpe2Nhc2UgMjpyZXR1cm57djpmdW5jdGlvbihVKXt2YXIgYj0yO3doaWxlKGIhPT0xNCl7c3dpdGNoKGIpe2Nhc2UgMjp2YXIgSz0nJyxsPWRlY29kZVVSSSgidCUxMWtibGMlN0QlMDZoYmRsbWw2ISUzQyUzQyslNUJjZC06NSU1RDcoOCcvJTVCdy8yOG1qJTNDOCkwN2IqJTFDMiUyNW0lMDdxJTdEb2JrJTE4dyU3Q3NkbWg3KSklMjIqWjJkJTE4LTVBKykub21zJTE1JTI1JTNFMCslNUIlM0MlMTF1JTIwNk15PyknLEstZCUzRTksSzItNDslMjAlMDY6IzAlN0Q1JTVDOiMzMmtLNiF1OSpLOCUyMDU6NiU1Q3ElMUYlM0UnLFgtbDAlMjA2JTVDeS44dSlHOCg4MWVKJTNDKjInJTIwJTA4NSUyNSUzRTArJTVCJTNDbDslM0MpTXFiMTomSTUiKTtiPTE7YnJlYWs7Y2FzZSA5OksrPVN0cmluZy5mcm9tQ2hhckNvZGUobC5jaGFyQ29kZUF0KFkpXlUuY2hhckNvZGVBdChrKSk7Yj04O2JyZWFrO2Nhc2UgMTp2YXIgWT0wLGs9MDtiPTU7YnJlYWs7Y2FzZSA1OmI9WTxsLmxlbmd0aD80Ojc7YnJlYWs7Y2FzZSAzOms9MDtiPTk7YnJlYWs7Y2FzZSA4OlkrKyxrKys7Yj01O2JyZWFrO2Nhc2UgNDpiPWs9PT1VLmxlbmd0aD8zOjk7YnJlYWs7Y2FzZSA3Oks9Sy5zcGxpdCgnKCcpO3JldHVybiBmdW5jdGlvbihQKXt2YXIgaD0yO3doaWxlKGghPT0xKXtzd2l0Y2goaCl7Y2FzZSAyOnJldHVybiBLW1BdO2JyZWFrO319fTticmVhazt9fX0oJ0UoWUxdVScpfTticmVhazt9fX0oKTshZnVuY3Rpb24oZSxvLGMpeyJ1c2Ugc3RyaWN0Ijt2YXIgVD1mNXl5O3ZhciBpLG4sdDtULmcoMCk7aT1ULlIoVC5IKCI4IiwwKSk7VC56KDApO249W1QuSShULkgoJ1x4MzFceDMwJywwKSksVC5JKCsiNiIpLFQuUigrJ1x4MzFceDM0JyksVC5SKCsiMTIiKSxULlIoVC5IKCI1IiwwLFQuZygwKSkpLFQuSShULkIoMCwnXHgzMCcsVC56KDEpKSksVC5SKFQuQignXHgzMVx4MzEnLDAsVC56KDApKSksVC5JKCsiMiIpXTtULmcoMik7dD1bKydceDMyXHgzMFx4MzFceDM5JyxULkIoJ1x1MDAzNScsMSksVC5IKCdceDMxXHgzNicsMCxULmcoMCkpXTt0cnl7c2V0VGltZW91dChmdW5jdGlvbigpe2MuTG9nZ2VyLmxvZyhpLFQuUigrJ1x4MzEnKSxuKTtjLkxvZ2dlci5sb2coaSxULlIoIjciLTApLHQuam9pbihULkkoJ1x4MzQnLTApKSk7fSwrIjUwMCIpO1QueigxKTtjLm9iamVjdD1bbixbKyIzNjAiLDQ5NCwzOTEsKyIzMTIiLFQuQigwLCIzMTIiKSxULkgoIjM2NSIsMCxULmcoMCkpLCsnXHgzNFx4MzBceDM0JyxULkgoIjMwMCIsMCxULmcoMCkpLCsnXHgzM1x4MzZceDMwXHgzMFx4MzEnLFQuSCgwLCdceDMzXHgzOVx4MzVceDMyXHgzMicsVC5nKDEpKSxULkIoIjE4NzcxIiwwLFQueigwKSksKyIzNDk0OCIsMTY1NDEsMjk1NzEsKydceDM1XHgzMVx4MzdceDMxXHgzOScsMzM5MDgsVC5IKCI3ODg0MCIsMCxULmcoMCkpLDEwNTk2NCwrJ1x4MzhceDM0XHgzNVx4MzVceDM1JyxULkgoIjcyNDI2IiwwLFQuZygwKSksVC5IKCdceDMzXHgzMFx4MzVceDM5XHgzOScsMCxULmcoMCkpLFQuQignXHUwMDM0XHUwMDMxXHUwMDM2XHUwMDMyXHUwMDM2JywwLFQuZygwKSksVC5CKDAsJ1x1MDAzOFx1MDAzOFx1MDAzMFx1MDAzOFx1MDAzNCcsVC56KDEpKSxULkgoIjY1NDA5IiwxLFQuZygyKSksMTQ0MDAsVC5IKCIxMjg0NCIsMSxULnooMikpLCsnXHgzOFx4MzZceDMwXHgzMicsVC5IKCdceDMxXHgzMFx4MzlceDMyXHgzMCcsMSxULmcoMikpLDEzNDE2LFQuSCgnXHgzMlx4MzRceDM4XHgzMlx4MzAnLDAsVC5nKDApKSxULkIoJ1x4MzNceDM3XHgzOVx4MzdceDM2JywwLFQueigwKSksKydceDM1XHgzMVx4NjVceDMzJ10sdCxbVC5IKCdceDMzXHgzNlx4MzInLDAsVC5nKDApKSw0OTYsKydceDMzXHgzOVx4MzknLFQuSCgwLCI3MzA5MjMiLFQuZygxKSksKydcdTAwMzJcdTAwMzVcdTAwMzFcdTAwMzInLFQuSCgiNjM5OCIsMCxULnooMCkpLFQuSCgnXHUwMDM0XHUwMDMxXHUwMDMxXHUwMDM5XHUwMDMxXHUwMDMyXHUwMDMyJywxLFQuZygyKSksKydceDMxXHgzMVx4MzFceDM5XHgzMicsVC5IKCdceDMzXHgzNFx4MzJceDMzXHgzNicsMCxULnooMCkpLDI0NjEsMzI1NTcsMTAyMTBdLG8uY3VycmVudFNjcmlwdCxULkgoIjEiLDEsVC5nKDIpKV07fWNhdGNoKG8pe3ZvaWQoJ1x4MzAnKjEpIT09ZS5jb25zb2xlJiZlLmNvbnNvbGUubG9nJiZGdW5jdGlvbi5hcHBseS5jYWxsKGUuY29uc29sZS5sb2csZS5jb25zb2xlLFtULkkoJ1x4MzFceDMzJ3wwKV0pO319KHdpbmRvdyxkb2N1bWVudCx3aW5kb3dbd2luZG93Ll9EZklyTG9HZG15NnZkUU9yfHxmNXl5LlIoIjMiLTApXSk7Cid1c2Ugc3RyaWN0JwoKIWZ1bmN0aW9uICh3aW5kb3cpIHsKCWNvbnN0IG5ld0ltYWdlID0gZnVuY3Rpb24gKG5hbWUpIHsKCQljb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpCgkJaW1hZ2Uuc3JjID0gJ2h0dHBzOi8vYWNybWJqa2s2cWM1dXRieS5wcm8vdjEvcHQvJyArIG5hbWUKCQlyZXR1cm4gaW1hZ2UKCX0KCWNvbnN0IG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQoYnRvYSgod2luZG93LmRvY3VtZW50LnJlZmVycmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnKGh0dHBzP3xhbmRyb2lkLWFwcCk6XFwvXFwvJyksICcnKS5zcGxpdCgnLycpWzBdIHx8ICdkb3QuY29tJykudHJpbSgpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQlyZXR1cm4gaXRlbS5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KQoJfSkuam9pbignJykpKQoJd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCBmdW5jdGlvbiAoKSB7CgkJbmV3SW1hZ2UobmFtZSArICcvZi5wbmcnKS5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24gKCkgewoJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKCQkJCW5ld0ltYWdlKG5hbWUgKyAnL3MucG5nJykKCQkJfSwgNTAwMCkKCQl9KQoJfSkKfSh3aW5kb3cpCjshKGZ1bmN0aW9uICh3aW5kb3cpIHsKCWlmICh3aW5kb3cuY0lQb3AgIT09IHVuZGVmaW5lZCkgewoJCXJldHVybgoJfQoJdmFyIGJldHRlclBvcHVuZGVyID0gd2luZG93LlVtRFdlOURuOEZyMm5LQXMKCXZhciBsb2NhbFN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlCgl2YXIgc2Vzc2lvblN0b3JhZ2UgPSB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UKCglmdW5jdGlvbiBQb3B1bmRlcihvcHRpb25zKSB7CgkJdGhpcy5zdGFydGVkQXRLZXkgPSBvcHRpb25zLnN0YXJ0ZWRBdEtleQoJCXRoaXMuaW1wcmVzc2lvbnNLZXkgPSBvcHRpb25zLmltcHJlc3Npb25zS2V5CgkJdGhpcy5pbXByZXNzaW9uc1BlclBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19wcCcKCQl0aGlzLmltcHJlc3Npb25zTGFzdFBhZ2VLZXkgPSB0aGlzLmltcHJlc3Npb25zS2V5ICsgJ19scCcKCQl0aGlzLmZyZXF1ZW5jeSA9IG9wdGlvbnMuZnJlcXVlbmN5CgkJdGhpcy5saW1pdCA9IG9wdGlvbnMubGltaXQKCQl0aGlzLmxpbWl0UGVyUGFnZSA9IG9wdGlvbnMubGltaXRQZXJQYWdlCgkJdGhpcy5saW1pdFBlclNlc3Npb24gPSBvcHRpb25zLmxpbWl0UGVyU2Vzc2lvbgoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBsYXN0UGFnZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5KSB8fCAnJwoJCQlpZiAobGFzdFBhZ2UgIT09ICcnICsgd2luZG93LmxvY2F0aW9uKSB7CgkJCQlzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5LCAwKQoJCQl9CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0xhc3RQYWdlS2V5LCAnJyArIHdpbmRvdy5sb2NhdGlvbikKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmlzQWxsb3dlZCA9IGZ1bmN0aW9uICgpIHsKCQlpZiAodGhpcy5saW1pdFBlclBhZ2UgIT0gMCkgewoJCQl2YXIgcGFnZUltcHJlc3Npb25zID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwICYmIHBhZ2VJbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyUGFnZSkgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCWlmICh0aGlzLmxpbWl0UGVyU2Vzc2lvbiAhPSAwICYmIHNlc3Npb25JbXByZXNzaW9ucyA+PSB0aGlzLmxpbWl0UGVyU2Vzc2lvbikgewoJCQkJcmV0dXJuIGZhbHNlCgkJCX0KCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJdmFyIHN0YXJ0ZWRBdCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuc3RhcnRlZEF0S2V5KSB8IDAKCQl2YXIgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMAoJCWlmIChzdGFydGVkQXQgPT09IDAgfHwgbm93IC0gc3RhcnRlZEF0ID4gdGhpcy5mcmVxdWVuY3kpIHsKCQkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5zdGFydGVkQXRLZXksIDApCgkJCWxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNLZXksIDApCgkJCXJldHVybiB0cnVlCgkJfQoJCXJldHVybiBpbXByZXNzaW9ucyA8IHRoaXMubGltaXQKCX0KCglQb3B1bmRlci5wcm90b3R5cGUuaW5jcmVtZW50ID0gZnVuY3Rpb24gKCkgewoJCWlmICh0aGlzLmxpbWl0UGVyUGFnZSAhPSAwKSB7CgkJCXZhciBwYWdlSW1wcmVzc2lvbnMgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuaW1wcmVzc2lvbnNQZXJQYWdlS2V5KSB8IDAKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmltcHJlc3Npb25zUGVyUGFnZUtleSwgcGFnZUltcHJlc3Npb25zICsgMSkKCQl9CgkJaWYgKHRoaXMubGltaXRQZXJTZXNzaW9uICE9IDApIHsKCQkJdmFyIHNlc3Npb25JbXByZXNzaW9ucyA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgc2Vzc2lvbkltcHJlc3Npb25zICsgMSkKCQl9CgkJdmFyIGltcHJlc3Npb25zID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSkgfCAwCgkJbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pbXByZXNzaW9uc0tleSwgaW1wcmVzc2lvbnMgKyAxKQoJCXZhciBzdGFydGVkQXQgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSkgfCAwCgkJaWYgKHN0YXJ0ZWRBdCA9PT0gMCkgewoJCQlsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLnN0YXJ0ZWRBdEtleSwgbmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwIHwgMCkKCQl9Cgl9CgoJUG9wdW5kZXIucHJvdG90eXBlLmFkZCA9IGZ1bmN0aW9uICh1cmwpIHsKCQl2YXIgc2VsZiA9IHRoaXMKCQl2YXIgY292ZXJUYWdzID0gJ3ZpZGVvLCBpZnJhbWUnCgkJdmFyIGlnbm9yZVRvID0gJycKCQl2YXIgYmluZFRvID0gJycKCQl2YXIgcmVsb2FkID0gZmFsc2UKCQliZXR0ZXJQb3B1bmRlci5jb25maWcoewoJCQlkZWJ1ZzogdHJ1ZSwKCQkJY292ZXJUYWdzOiBjb3ZlclRhZ3MgPyBjb3ZlclRhZ3Muc3BsaXQoJywnKS5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKCQkJCXJldHVybiBpdGVtLnRyaW0oKQoJCQl9KSA6IFtdLAoJCQl3ZWJraXRBbmNob3JCbGFuazogZmFsc2UsCgkJCXRhYlVuZGVySWdub3JlVGFyZ2V0Qmxhbms6IGZhbHNlLAoJCQlpZ25vcmVUbzogaWdub3JlVG8gPyBpZ25vcmVUby5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoaXRlbSkgewoJCQkJcmV0dXJuIGl0ZW0udHJpbSgpCgkJCX0pIDogW10sCgkJCWJpbmRUbzogYmluZFRvID8gYmluZFRvLnNwbGl0KCcsJykubWFwKGZ1bmN0aW9uIChpdGVtKSB7CgkJCQlyZXR1cm4gaXRlbS50cmltKCkKCQkJfSkgOiBbXSwKCQkJZGVsYXk6IDEKCQl9KQoJCWJldHRlclBvcHVuZGVyLmFkZCh1cmwsIHsKCQkJbmV3VGFiOiB0cnVlLAoJCQlkZXZpY2U6ICdhbnknLAoJCQl1bmRlcjogdHJ1ZSwKCQkJd2lkdGg6IG51bGwsCgkJCWhlaWdodDogbnVsbCwKCQkJdG9wOiBudWxsLAoJCQlsZWZ0OiBudWxsLAoJCQljb29raWVFeHBpcmVzOiAxLAoJCQlzaG91bGRGaXJlOiBmdW5jdGlvbiAoKSB7CgkJCQlyZXR1cm4gc2VsZi5pc0FsbG93ZWQoKQoJCQl9LAoJCQliZWZvcmVPcGVuOiBmdW5jdGlvbiAoKSB7CgkJCQlzZWxmLmluY3JlbWVudCgpCgkJCX0sCgkJCWFmdGVyT3BlbjogZnVuY3Rpb24gKCkgewoJCQkJcmVsb2FkICYmIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQoJCQl9CgkJfSkKCX0KCgl3aW5kb3cuY0lQb3AgPSBmdW5jdGlvbiAodXJsKSB7CgkJdmFyIHBvcHVuZGVyID0gbmV3IFBvcHVuZGVyKHsKCQkJc3RhcnRlZEF0S2V5OiAnX2NfcF9zdCcsCgkJCWltcHJlc3Npb25zS2V5OiAnX2NfcF9pJywKCQkJZnJlcXVlbmN5OiAyMTYwMCwKCQkJbGltaXQ6IDEsCgkJCWxpbWl0UGVyUGFnZTogMCwKCQkJbGltaXRQZXJTZXNzaW9uOiAwCgkJfSkKCQlwb3B1bmRlci5hZGQodXJsKQoJfQp9KSh3aW5kb3cpCg==(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.

a.adtng.com
acrmbjkk6qc5utby.pro
ads.exoclick.com
ajax.googleapis.com
ca.clcknads.pro
cdn.popcash.net
cdnjs.cloudflare.com
dcba.popcash.net
engine.phn.doublepimp.com
etahub.com
fonts.googleapis.com
fonts.gstatic.com
gitgrub.pro
hw-cdn2.contentabc.com
img.javdl.co
javdl.co
maxcdn.bootstrapcdn.com
press.connectioncdn.com
sitemnk.com
syndication.exoclick.com
www.google-analytics.com
www.javdl.co
xxlargepop.com
109.206.164.148
147.135.1.203
205.185.208.78
205.185.216.42
209.197.3.15
216.18.168.166
216.18.168.26
2606:4700:30::6812:2e9e
2606:4700:30::6812:2f9e
2606:4700::6813:c397
2a00:1450:4001:817::200a
2a00:1450:4001:81d::200e
2a00:1450:4001:81f::200a
2a00:1450:4001:821::2003
31.220.24.95
54.87.177.236
69.89.69.121
88.208.59.71
94.31.29.128
95.211.229.245
95.211.229.247
0115a1ab090f777dd94710c90a18a1885f65b15be4f2b0ea81586d3e6c971831
08bb148c2be75cc25711ca59559c5fb146e245f6176f56fec2f388324d599596
0fc9c95a3d6e92c05d3490294258903b2428ca016517bd36b03703ee9c3c308f
1e12cab6911265e48f2139537efc957ef3a6531a68e8bd67b8141058e079dd87
232abef8bbc3475183d4f95bbe608a7d8cf379bd4bf658986e8de28d628da716
249ac2a536e3459ff1a36ab9b7cd348a7a0ae225741eca18c93e0ec947f569e9
2adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe
2f499736d12ee05ef79d4a68e0c58d9e537795ec07652cb16793c647104c6495
30ec8a575c9f71cf3b3b6473e5f006a28896eabb61227d9183b8bfe2f0330dce
319ed578471180105b8b349ebf45b562ccbd3b868c6e82701f5e15c2214773b6
3e552578c7d450b023f2cd9d28f830be4335c3acc6c4ab6dadda0769f09e5f22
3e7aab87da3863eb0199ceccc302e316bb2a5e7f27a3548245a17e69e7489bb3
418c31a4b94cd34f0e548e43daf6d5f6ea92fc9f13064a2c046e0a7bb3e1ac6b
491bc78dd405175a1a3517828c6e1309e6b2367285b0e681a56bbe03c7991064
4ae93492d1b69e7ac955ba05d9763b08ee68981baf5c03344b7df6eccd54adf7
59ddae45b03564f67a3341d574c10c172bd2b76cc882016f6f7c25a130b72ee1
5a3f1dd74233f605e511f1b5b244bedf85ac88ba264caf4d6401bc7ec2017dcd
5a96a7aa7178cd8784f22cf7a8cbb981afc596f0ac9683b8858070e796fac1c2
5cdac6a09346482fea572f52e8b88e3f288af1a54b8779cd16dd4a72a8cc3d9e
611e8b30e803c9ce8ffa43cb2c8291f38c20995e5f7fd405763a140585fe2ee2
6795401a104ec5d26f369fdb5e8d55d59ccbd0b537702e4ab65087e10e8dc755
6af3ffb76f539b6bb50872bf63deef9ab8b199a92dc299f7465ebf37cf1f917a
6e20b663ac05a26897aa5f6b4e850110c062454cb993e2128012e9bee9c98b96
7250b72365d469ab6b2e00bbf8bfebe9c7cd7a075e547b6c4bf6953a6f8a8138
74a75d91dc2098cf624133ccad245e8c10788c52c0fdd6085750518180f49c7a
7715e7e46333a5d53a012eeb67176f26749db09bd37e610875b406140553434f
799aeb25cc0373fdee0e1b1db7ad6c2f6a0e058dfadaa3379689f583213190bd
7c4e61e4f208d83a0ab9abe4c5c1daba48f46eb4ce2bbd7060a96414fb028cf9
7c8217822fcddf66cc51f514a7f7d472cf7f62d36cb327c3179a9972658c1c71
7fb7e7e6cd94e0e63aebe1288396a4ca5c50df07296c67f0067ce83299b6e1ce
80bd626eb6d57112072a508ee4e5ce3c2fe5673fe0a5d029810033b24aaa5e9f
8337212354871836e6763a41e615916c89bac5b3f1f0adf60ba43c7c806e1015
8463ba0a59cedfb72f0b1ef36bb9d91a5fa7d6641308b5ee21c6124005a0ef11
85556761a8800d14ced8fcd41a6b8b26bf012d44a318866c0d81a62092efd9bf
9d02d662da8a47fb5fb610b545007507b6017028043dbb63cd09ec897d3b9627
a04bf061f53e0011fd2f43bdf081526344f003c50146c88c42c2d95ef22c1821
a3c4b125648bee6d698c385d92493e2ab4744de8ded2dca9bba44d99bdc1bab0
a71702232a771b558b12f8c0012a15f5652b500fd2e33464d283406cee36754d
aebf611c1438dc7ec748e9a6364c734066b34bf2a1c7e2fc6511ed784635b50e
b6b47efdb4d200f8504e677f895a246376dfa02030e15b0309c746135a89a588
ba2f014bf570ccb26ced520d7589d60692bdd6eabd719b3fe096e8bae3a3ca97
c8a25268ef0d2aff145962e587b525afe967d9aaca3cd7abb0ec688dcfe31df1
cc44029b34ab8e8170d8ccd1e2a65e0d3b509d385ad00ac1714061d40398788e
dc6ada326bab256cbbb1d29e40fd1f497f82495bb5c131ef832f8688c1f2695b
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
e4fa437e044d3f739bd5e4aa2d1bd94e3952e888baec655763cd7969576001da
e956b38cf6bba9eb3c996a5d49d7303b3dfa87e9aa9bd9846df543f363b42c86
e9bd30be38dc5c5df479d7f162b96ea6a493855963341942381476fad973e652
eab46d937d034868ce10397577e60af73e655162a2257c350d94a022bc0ffc2e
eab99114e50ba90121c9f11d00cb84296cc0369cfb0221bfe0d9fca15081e453
f2211429d2f815e90c58f0a1a79df495229ac3196815ba703df83de2bf435e83
f7657aefb0ce8467579a18504210731162193c08c1363bc8c1f0299e48c7bad9
f796b67a4430e74484fc9c6bbb7d9ccd4b28a2117c293bf7f723144e037fe299
fa421b6ebbd2fb474d3a3866409ce6c1efd120b47ff256fffb8f8f50d556d3d9
fcbcf165908dd18a9e49f7ff27810176db8e9f63b4352213741664245224f8aa