Submitted URL: http://tinyurl.com/LTThack23
Effective URL: https://itty.bitty.site/
Submission: On April 04 via manual from SE — Scanned from SE

Summary

This website contacted 6 IPs in 3 countries across 6 domains to perform 10 HTTP transactions. The main IP is 35.156.224.161, located in Frankfurt am Main, Germany and belongs to AMAZON-02, US. The main domain is itty.bitty.site.
TLS certificate: Issued by R3 on February 15th 2023. Valid for: 3 months.
This is the only time itty.bitty.site was scanned on urlscan.io!

urlscan.io Verdict: No classification

Domain & IP information

IP Address AS Autonomous System
1 1 104.20.139.65 13335 (CLOUDFLAR...)
6 35.156.224.161 16509 (AMAZON-02)
1 104.16.123.175 13335 (CLOUDFLAR...)
1 52.222.214.88 16509 (AMAZON-02)
1 104.198.61.223 15169 (GOOGLE)
10 6
Apex Domain
Subdomains
Transfer
6 bitty.site
itty.bitty.site
28 KB
1 zxing.org
zxing.org
48 B
1 nightcafe.studio
images.nightcafe.studio — Cisco Umbrella Rank: 208510
315 KB
1 unpkg.com
unpkg.com — Cisco Umbrella Rank: 933
1 tinyurl.com
tinyurl.com — Cisco Umbrella Rank: 17321
11 KB
0 bittubeapp.com Failed
bittubeapp.com Failed
10 6
Domain Requested by
6 itty.bitty.site itty.bitty.site
1 zxing.org text
1 images.nightcafe.studio text
1 unpkg.com text
1 tinyurl.com 1 redirects
0 bittubeapp.com Failed text
10 6

This site contains no links.

Subject Issuer Validity Valid
bitty.recipes
R3
2023-02-15 -
2023-05-16
3 months crt.sh
sni.cloudflaressl.com
Cloudflare Inc ECC CA-3
2022-06-01 -
2023-06-01
a year crt.sh
appimages.nba.com
R3
2023-03-28 -
2023-06-26
3 months crt.sh
zxing.org
GeoTrust TLS DV RSA Mixed SHA256 2020 CA-1
2022-04-15 -
2023-05-16
a year crt.sh

This page contains 2 frames:

Primary Page: https://itty.bitty.site/
Frame ID: 15D51690D4FB651AD514C6381AFA9890
Requests: 6 HTTP requests in this frame

Frame: data://truncated
Frame ID: 977FCD91F8540C199D648A6447ABA121
Requests: 5 HTTP requests in this frame

Screenshot

Page Title

What Should Be Learned from the LTT Hack

Page URL History Show full URLs

  1. http://tinyurl.com/LTThack23 HTTP 307
    https://tinyurl.com/LTThack23 HTTP 301
    https://itty.bitty.site/ Page URL

Page Statistics

10
Requests

90 %
HTTPS

0 %
IPv6

6
Domains

6
Subdomains

6
IPs

3
Countries

369 kB
Transfer

424 kB
Size

0
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://tinyurl.com/LTThack23 HTTP 307
    https://tinyurl.com/LTThack23 HTTP 301
    https://itty.bitty.site/ Page URL

Redirected requests

There were HTTP redirect chains for the following requests:

10 HTTP transactions

Resource
Path
Size
x-fer
Type
MIME-Type
Primary Request /
itty.bitty.site/
Redirect Chain
  • http://tinyurl.com/LTThack23
  • https://tinyurl.com/LTThack23
  • https://itty.bitty.site/
1 KB
782 B
Document
General
Full URL
https://itty.bitty.site/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
35.156.224.161 Frankfurt am Main, Germany, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-35-156-224-161.eu-central-1.compute.amazonaws.com
Software
Netlify /
Resource Hash
963ec3b57d02f7071fd40671294cc7d7680e68ed831ccc11c9b10cd67a46252f
Security Headers
Name Value
Strict-Transport-Security max-age=31536000

Request headers

Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.146 Safari/537.36
accept-language
se-SE,se;q=0.9

Response headers

accept-ranges
bytes
age
19393
cache-control
public, max-age=0, must-revalidate
content-encoding
br
content-length
564
content-type
text/html; charset=UTF-8
date
Tue, 04 Apr 2023 11:56:42 GMT
etag
"950091870b669d1a969bd7eafe457fda-ssl-df"
server
Netlify
strict-transport-security
max-age=31536000
vary
Accept-Encoding
x-nf-request-id
01GX6MGJ75DWPZ28GJPQ9XCX4W

Redirect headers

alt-svc
h3=":443"; ma=86400, h3-29=":443"; ma=86400
cache-control
max-age=0, public, s-max-age=900, stale-if-error: 86400
cf-cache-status
DYNAMIC
cf-ray
7b2b380dc9180d32-ARN
content-type
text/html; charset=UTF-8
date
Tue, 04 Apr 2023 17:19:55 GMT
location
https://itty.bitty.site/#What%20Should%20Be%20Learned%20from%20the%20LTT%20Hack/?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
referrer-policy
unsafe-url
server
cloudflare
x-content-type-options
nosniff
x-tinyurl-redirect
eyJpdiI6ImswOTdsMmc1eE5NazVla1lUNW4rZnc9PSIsInZhbHVlIjoiU3ZRMVh4aEtmTGRCQUhTNWxFRWFUVC9EM0dyQVV1K0F6OU5uNDcxMUk0SmtVdXd2RzlHODRjMWR4S2lMbUwyYzRZbE4veDl4OXdVeUtDd0d2STRITUE9PSIsIm1hYyI6IjQwNTgyNTA4NTliNTcwNjI3MDBhZDUxNjQ0ZmJjZWZjZWU0MDMxZTkyYzJmMzM1MjAzNDNmOWI5ZWVjMDg1YzMiLCJ0YWciOiIifQ==
x-xss-protection
1; mode=block
index.css
itty.bitty.site/
10 KB
3 KB
Stylesheet
General
Full URL
https://itty.bitty.site/index.css
Requested by
Host: itty.bitty.site
URL: https://itty.bitty.site/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
35.156.224.161 Frankfurt am Main, Germany, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-35-156-224-161.eu-central-1.compute.amazonaws.com
Software
Netlify /
Resource Hash
9b89b5f6d1277d078314a2afe1181d621e8ef3b2ed09c779a1c62dd11d5b3d32
Security Headers
Name Value
Strict-Transport-Security max-age=31536000

Request headers

accept-language
se-SE,se;q=0.9
Referer
https://itty.bitty.site/
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.146 Safari/537.36

Response headers

x-nf-request-id
01GX6MGJAF5Z05V9HT8RNE9AHD
date
Tue, 04 Apr 2023 09:39:53 GMT
content-encoding
br
strict-transport-security
max-age=31536000
server
Netlify
age
27603
etag
"a58988918fb304779896697ec570bc05-ssl-df"
vary
Accept-Encoding
content-type
text/css; charset=UTF-8
cache-control
public, max-age=0, must-revalidate
accept-ranges
bytes
content-length
2715
bitty.js
itty.bitty.site/
21 KB
6 KB
Script
General
Full URL
https://itty.bitty.site/bitty.js
Requested by
Host: itty.bitty.site
URL: https://itty.bitty.site/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
35.156.224.161 Frankfurt am Main, Germany, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-35-156-224-161.eu-central-1.compute.amazonaws.com
Software
Netlify /
Resource Hash
b113402823b4f8b8ad17683e03cf334989ab7eac761d814ab7b7c5e41438d7fa
Security Headers
Name Value
Strict-Transport-Security max-age=31536000

Request headers

Referer
https://itty.bitty.site/
Origin
https://itty.bitty.site
accept-language
se-SE,se;q=0.9
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.146 Safari/537.36

Response headers

x-nf-request-id
01GX6MGJAFGGAEWR9YSPF24KPJ
date
Tue, 04 Apr 2023 09:39:53 GMT
content-encoding
br
strict-transport-security
max-age=31536000
server
Netlify
age
27603
etag
"452f64881cef1ca596aef5be89f88449-ssl-df"
vary
Accept-Encoding
content-type
application/javascript; charset=UTF-8
cache-control
public, max-age=0, must-revalidate
accept-ranges
bytes
content-length
6267
index.js
itty.bitty.site/
20 KB
6 KB
Script
General
Full URL
https://itty.bitty.site/index.js
Requested by
Host: itty.bitty.site
URL: https://itty.bitty.site/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
35.156.224.161 Frankfurt am Main, Germany, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-35-156-224-161.eu-central-1.compute.amazonaws.com
Software
Netlify /
Resource Hash
527e45e4a2f500c51e5696582619ee26df7d6bc096c390a7bec512bd6de62d6b
Security Headers
Name Value
Strict-Transport-Security max-age=31536000

Request headers

Referer
https://itty.bitty.site/
Origin
https://itty.bitty.site
accept-language
se-SE,se;q=0.9
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.146 Safari/537.36

Response headers

x-nf-request-id
01GX6MGJAF795Q1BH4R4393T4S
date
Tue, 04 Apr 2023 09:39:53 GMT
content-encoding
br
strict-transport-security
max-age=31536000
server
Netlify
age
27603
etag
"e45398c315bb9f9914beeaffeadb0a31-ssl-df"
vary
Accept-Encoding
content-type
application/javascript; charset=UTF-8
cache-control
public, max-age=0, must-revalidate
accept-ranges
bytes
content-length
6128
bitty-menu.js
itty.bitty.site/
8 KB
3 KB
Script
General
Full URL
https://itty.bitty.site/bitty-menu.js
Requested by
Host: itty.bitty.site
URL: https://itty.bitty.site/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
35.156.224.161 Frankfurt am Main, Germany, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-35-156-224-161.eu-central-1.compute.amazonaws.com
Software
Netlify /
Resource Hash
261beaf94a26e102e750fc3d7603c3d06db9b0709d9d171395b40b60febe2db9
Security Headers
Name Value
Strict-Transport-Security max-age=31536000

Request headers

Referer
https://itty.bitty.site/index.js
Origin
https://itty.bitty.site
accept-language
se-SE,se;q=0.9
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.146 Safari/537.36

Response headers

x-nf-request-id
01GX6MGJDZBBCKP8QD6VFGAHT2
date
Tue, 04 Apr 2023 09:39:53 GMT
content-encoding
br
strict-transport-security
max-age=31536000
server
Netlify
age
27602
etag
"3206de59d82636de24c0f433c79b7509-ssl-df"
vary
Accept-Encoding
content-type
application/javascript; charset=UTF-8
cache-control
public, max-age=0, must-revalidate
accept-ranges
bytes
content-length
2688
lzma_worker-min.js
itty.bitty.site/js/lzma/
23 KB
9 KB
Script
General
Full URL
https://itty.bitty.site/js/lzma/lzma_worker-min.js
Requested by
Host: itty.bitty.site
URL: https://itty.bitty.site/bitty.js
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
35.156.224.161 Frankfurt am Main, Germany, ASN16509 (AMAZON-02, US),
Reverse DNS
ec2-35-156-224-161.eu-central-1.compute.amazonaws.com
Software
Netlify /
Resource Hash
e2189cb40141f598298a0810e19e4133aa5e8ab62a0a1295a5944ce5d3064523
Security Headers
Name Value
Strict-Transport-Security max-age=31536000

Request headers

accept-language
se-SE,se;q=0.9
Referer
https://itty.bitty.site/
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.146 Safari/537.36

Response headers

x-nf-request-id
01GX6MGJHE4ZKJ1WVYM366BEPA
date
Tue, 04 Apr 2023 09:39:53 GMT
content-encoding
br
strict-transport-security
max-age=31536000
server
Netlify
age
27602
etag
"0b666dd9505bfe37fd1544bc6854fbe0-ssl-df"
vary
Accept-Encoding
content-type
application/javascript; charset=UTF-8
access-control-allow-origin
*
cache-control
public, max-age=0, must-revalidate
accept-ranges
bytes
content-length
9171
truncated
/ Frame 977F
26 KB
26 KB
Document
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
d567d7be0d882115d7d8c12db2060773b70f53591d05c76815dcb19a6d65678e

Request headers

Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.146 Safari/537.36
accept-language
se-SE,se;q=0.9

Response headers

Content-Type
text/html;charset=utf-8
nft-card.min.js
unpkg.com/embeddable-nfts/dist/ Frame 977F
0
0
Script
General
Full URL
https://unpkg.com/embeddable-nfts/dist/nft-card.min.js
Requested by
Host: text
URL: data:text/html;charset=utf-8;base64,PG1ldGEgY2hhcnNldD0idXRmLTgiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPjxiYXNlIHRhcmdldD0iX3RvcCI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj5ib2R5e21hcmdpbjowIGF1dG87cGFkZGluZzoxMnZtaW4gMTB2bWluO21heC13aWR0aDozNWVtO2xpbmUtaGVpZ2h0OjEuNWVtO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LHNhbnMtc2VyaWY7d29yZC13cmFwOmJyZWFrLXdvcmQ7fUBtZWRpYShwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayl7Ym9keXtjb2xvcjp3aGl0ZTtiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrO319PC9zdHlsZT4gPGEgdGFyZ2V0PSJfdG9wIiBpZD0ibGluayIgbmFtZT0ibGluayIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsiPjxkaXYgaWQ9ImljaGVjayIgc3R5bGU9Im1hcmdpbi10b3A6LTd2dzsiPgoKCiZuYnNwOzxzdHlsZT4gLmxpbmUge2JhY2tncm91bmQ6IGJsYWNrO29wYWNpdHk6IDAuNTtoZWlnaHQ6IDQuNXB4Oy13ZWJraXQtYm94LXNoYWRvdzogMnB4IC0ycHggM3B4IGRpbWdyZXk7Ym94LXNoYWRvdzogMnB4IC0ycHggM3B4IGRpbWdyZXk7d2lkdGg6IDAlO3Bvc2l0aW9uOiBmaXhlZDtib3R0b206IDA7bGVmdDowO2FsaWduOmNlbnRlcjt6LWluZGV4Ojg7fcKgIMKgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOS45aW4pIHsgLnFyaW1nIHthbGlnbjogcmlnaHQ7cmlnaHQ6MDttYXJnaW4tcmlnaHQ6LTMuNSU7bWFyZ2luLWJvdHRvbTotNTAlO3BhZGRpbmctcmlnaHQ6LTEuNSU7d2lkdGg6MzAlO30gLnRvcGJhciB7bWFyZ2luLXRvcDotM3Z3O21hcmdpbi1sZWZ0Oi0zdnc7bWFyZ2luLXJpZ2h0Oi0zdnc7fSAubGluZSB7bWFyZ2luLWxlZnQ6MC41JTthbGlnbjpjZW50ZXI7bGVmdDowO319IEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwaW4pIHsgLnFyaW1nIHthbGlnbjogcmlnaHQ7bWFyZ2luLWJvdHRvbTotNTAlO3dpZHRoOjIwJTt9LmxpbmUge21hcmdpbi1sZWZ0OjAlO2FsaWduOmNlbnRlcjtsZWZ0OjA7fX3CoCA8L3N0eWxlPiZuYnNwOyA8ZGl2IGNsYXNzPSJsaW5lIiBpZD0ic2Nyb2xsSW5kaWNhdG9yIj48L2Rpdj48L2Rpdj48c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vZW1iZWRkYWJsZS1uZnRzL2Rpc3QvbmZ0LWNhcmQubWluLmpzIj48L3NjcmlwdD48ZGl2IGlkPSJiYWNrZ3JvdW5kIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTotMTV2dzsiPjxsYWJlbD48aDEgc3R5bGU9Im1hcmdpbi1ib3R0b206LTJ2dzsiPjxzcGFuIHN0eWxlPSJsZWZ0OjA7IiBhbGlnbj0ibGVmdCIgaWQ9Im91dHRvcCI+V2hhdCBTaG91bGQgQmUgTGVhcm5lZCBmcm9tIHRoZSBMVFQgSGFjazwvc3Bhbj48L2gxPjwvbGFiZWw+Jm5ic3A7IDxsYWJlbD48aDQgYWxpZ249InJpZ2h0IiBzdHlsZT0icmlnaHQ6MDsiPjxzcGFuIGFsaWduPSJyaWdodCIgc3R5bGU9InJpZ2h0OjA7IiBpZD0ib3V0bWlkIj4jTFRUICNMVFRoYWNrICNIYWNrICNMVFRoYWNrMjM8L3NwYW4+PGhyIHN0eWxlPSJtYXJnaW4tYm90dG9tOi0zdnc7Ij48L2g0PjwvbGFiZWw+CiZuYnNwOyAmbmJzcDs8c3BhbiBhbGlnbj0iY2VudGVyIiBpZD0iaW1nMSIgc3R5bGU9IndpZHRoOjk2dnc7cmlnaHQ6NTA7bGVmdDo1MDtoZWlnaHQ6YXV0bzsiPjxpbWcgc3JjPSJodHRwczovL2ltYWdlcy5uaWdodGNhZmUuc3R1ZGlvL2pvYnMvcFo3VmRIcldEWFdSbVVrZmhoT08vcFo3VmRIcldEWFdSbVVrZmhoT08tLTMtLW01ZjhrXzZ4LmpwZyIgc3R5bGU9IndpZHRoOjk5JTsiIGFsaWduPSJjZW50ZXIiPjwvc3Bhbj4KPGxhYmVsPjxoNCBzdHlsZT0iZm9udC13ZWlnaHQ6bm9ybWFsOyI+PHNwYW4gaWQ9Im91dG91dCIgc3R5bGU9ImZvbnQtd2VpZ2h0Om5vcm1hbDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBNYWpvciB0ZWNoIGNvbXBhbmllcyB3ZW50IGZyb20gaGVscGluZyB0aGUgc29jaWV0eSBhcm91bmQgdGhlbSB0byB0YWtpbmcgZnJvbSB0aGUgc29jaWV0eSBhcm91bmQgdGhlbSB0byBub3cgY29udHJvbGxpbmcgdGhlIHNvY2lldHkgYXJvdW5kIHRoZW0uIFRoZSA8aT5UZWNoIEdpYW50czwvaT4gcGxhbnRlZCB0aGVpciBmZWV0IGluIHRoZSBkaXJ0IGJ5IGhlbHBpbmcgdXMsIHRoZW4gdGhleSBnYXZlIHVzIGhvcGVzIG9mIHNlY3VyaXR5ICZhbXA7IHNhZmV0eSBvbmx5IHRvIHR1cm4gYW5kIGN1dCBob2xlcyBpbnRvIHRoZWlyIHN5c3RlbXMganVzdCB0byBsZXQgdGhlIGdvdmVybm1lbnRzIGluLiBUaGUgcHJvYmxlbSB3aXRoIGhvbGVzIGlzIHlvdSBjYW4ndCBwaWNrIGFuZCBjaG9vc2Ugd2hhdCBnb2VzIHRocm91Z2ggdGhlbS4KPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBIYXZpbmcgYmFja2Rvb3JzIGV2ZW4gZm9yIHlvdXIgb3duIHRlYW0sIHBlb3BsZXMsIHN5c3RlbXMsIGV0YyBnaXZlcyB0aGUgYWJpbGl0eSBmb3Igc29tZW9uZSBlbHNlIHRvIGdhaW4gc29tZSBmb3JtIG9mIGFjY2Vzcy4gTXVjaCBob3cgYmxvY2tjaGFpbiBkYXRhYmFzZXMgd2VyZSB0byBwcmV2ZW50IGRvdWJsZS1kYXRhICZhbXA7IHVucGVybWlzc2lvbmVkLWRhdGEtY2hhbmdlcyBidXQgd2l0aCBwcm9ncmFtYWJsZSBjaGFpbnMgY2FtZSBjb250cm9sbGluZyBzY3JpcHRzICZhbXA7IGF1dG8tdHJhbnNmZXIgYXR0YWNrcyBoaWRkZW4gYXMgZnJlZS1taW50cyB3ZWJzaXRlcy4gV2hlcmUgd2UgaGFkIG9mZmxpbmUgc3RvcmFnZSB3aXRoIGNoYWlucyBtZWNoYW5pY3MgdGhhdCBhbGxvd2VkIHNlbmRpbmcgdG8gYW55dGhpbmcgZXZlbiB1bmtub3ducyBhbmQgYmVpbmcgYWJsZSB0byBqdXN0IHNlbmQgdGhlIHByb29mIG9mIG91dHB1dCBhbmQgbm90IHRoZSBvdXRwdXQgaXRzZWxmIGp1c3QgZm9yIGx1eHVyaWVzIHRvIGNvbWUgaW4gYW5kIHB1dCB1bmtub3dpbmcgdXNlcnMgaW4gZnJvbnQgb2YgZGlyZWN0IGNvbnRyb2wgb2YgdGhlaXIgb25saW5lIHdhbGxldCBzdG9yYWdlLiBXaGVuIGtub3dsZWRnZSB3YXMgdGhlIHdheSB0byB1c2UgdGhlIHNlY3VyaXR5IHdhcyBnZW5lcmFsbHkgaGlnaGVyIGFuZCBhdHRhY2tzIHdlcmUgZ2VuZXJhbGx5IGxvd2VyIGJ1dCBhcyBpdCBiZWNvbWVzIGVhc2llciB0byB1c2UsIHRoZSBtb3JlIHBlb3BsZXMgdGhhdCBjYW4gcGFydGljaXBhdGUuIFRoaXMgaXMgdGhlIHJvYWQgdG8gYXR0YWNrLCB0aGlzIGlzIHdoZXJlIHdlIHdlcmUgbGVhZCwgdGhpcyBpcyB3aGVyZSB3ZSBhcmUuPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBZb3VUdWJlIHdoaWNoIGlzIGFwYXJ0IG9mIHRoZSBHb29nbGUgdGVjaCBnaWFudCBmYW1pbHksIGlzIGF0dGFja2VkIHNvbWV0aW1lcyBtdWx0aXBsZSB0aW1lcyBwZXIgbWludXRlIGluIGEgbWFubmVyIHRoYXQgaXMgPGk+PGI+c3VjY2Vzc2Z1bDwvYj48L2k+LiBGcm9tIGhvdyB0aGVzZSBhdHRhY2tzIGFyZSBhYmxlIHRvIGhhcHBlbiBkb3duIHRvIGhvdyBzaW1wbHkgdGhlc2UgYXR0YWNrcyBhcmUgYmVpbmcgZG9uZSBzb21lIHBlb3BsZSBhcmUgYWJsZSB0byBzZWUgd2h5IHRoZXNlIGF0dGFja3MgY2Fubm90IGJlIHN0b3BwZWQhCjxicj48YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IEF0IHRoZSBtb21lbnQgTFRUIGlzIG9uZSBvZiB0aGUgYmlnZ2VzdCBzZWVuIGF0dGFja3MgZm9yIGEgWW91VHViZSBjaGFubmVsLiBUaGUgdGVhbSB3aXRoaW4gdGhlIGNvbXBhbnkgaGFzIGV4cGxhaW5lZCBzbyBtdWNoIGluZm9ybWF0aW9uIGFuZCB0YWtlbiB1cyAodGhlIGF1ZGllbmNlKSB0aHJvdWdoIHRoZSBzdGVwcyBlbm91Z2ggdGltZXMgdGhhdCBjb21wYXJpc29ucyBvZiBhdHRhY2tzIHRvIFlvdVR1YmVycyBvdmVyIHRoZSB5ZWFycyBjYW4gcmVhbGx5IGJlIHZpZXdlZCBpbiBsaWdodHMuPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBOb3JtYWxseSB3aXRoIFlvdVR1YmVyIGhhY2tzIHBlb3BsZSBleHBlY3QgdGhlIGNvbW1vbiB0cm9wZXM6IDxpPjxiPnVzZXIgZXJyb3I8L2I+LCA8Yj5lbWFpbC9waGlzaGluZy9pY2Vpbmc8L2I+LCA8Yj5jbGlwcGVkL2xvZ2dlZDwvYj4gYXR0YWNrczwvaT4uIFRoZXNlIGFyZSBhbGwgc29tZSBmb3JtIG9mIDxpPjxiPnVzZXIgZXJyb3I8L2I+PC9pPiBvciBpdCB0YWtlcyB0aGUgdXNlciB0byBjYXVzZSB0aGUgZW50cnkgZm9yIHRoZXNlIGF0dGFja3MgYW5kIHdoaWxlIHRoZSBtb3JlIG90aGVyIGF0dGFja3MgYXJlIGtub3duIG9mLCBwZW9wbGUgb3V0c2lkZSB0aGUgYXR0YWNrIHZlY3RvciByYXJlbHkgaGVhciBvZiB0aGUgaW5zaWRlIGluZm9ybWF0aW9uLiBMaW51cyBUZWNoIFRpcHMgaG93ZXZlciwgdGhleSBnYXZlIHVzIHRoaXMgaW5mb3JtYXRpb24uCjxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgQXQgdGhlIGVuZCBvZiBtYW55IFlvdVR1YmVyIGF0dGFjayB2aWRlb3MgdGhlIHBocmFzZSwgIjxpPnBsZWFzZSBiZSBraW5kPC9pPiIgaXMgdXNlZCBvZnRlbiBiZWNhdXNlIHRoZSB1c2VyIGJlbGlldmVzIHRvIGJlIGF0IGZhdWx0LiBUaGVzZSBhcmUgdHJvdWJsaW5nIGFuZCBjb25mdXNpbmcgdGltZXMsIGV2ZW4gZm9yIGEgd2VsbCB0ZWNoLWtub3dsZWRnZWQgcGVyc29uIGxpa2UgTFRUJ3MgTGludXMgPGk+aGltc2VsZjwvaT4gdGhlIHNpdHVhdGlvbiB3YXMgY29uZnVzaW5nIGFuZCBtaXNsZWFkaW5nLiBGcm9tIHRoZSBzaXR1YXRpb24gYXQgaGFuZCBleHBsYWluZWQgdmlhIExUVCdzIHN0YWZmIHdpdGhpbiB0aGVpciBvd24gbGl2ZSBzdHJlYW1zLCBjbGlwcyBhbmQgcG9zdHMgaXQgYXBwZWFycyB0aGF0IHRoZSBvbmx5IHBlb3BsZSB0aGF0IGhhbmRsZWQgdGhlIHNpdHVhdGlvbiBjYWxtbHkgYXJlIHBlb3BsZSB3aG9tIGVpdGhlciBkZWFsIG9mdGVubHkgb3IgaGF2ZSBkZWFsdCBvZnRlbiB3aXRoIGhhY2tpbmcgb3IgcXVpY2sgdGltZSBzaXR1YXRpb25zIHdpdGhpbiByZWFsLXdvcmxkIHNjZW5hcmlvcyAobGlrZSBoYWNraW5nIGV2ZW50cyBhbmQgZGVtb25zdHJhdGlvbnMpLiBUaGUgcGVvcGxlIHRoYXQgZml4IHRoZSBpc3N1ZXMgd2hlbiB0aGV5IGFyZSBsaXZlLCBkdXJpbmcgcmVjb3JkaW5ncyAmYW1wOyB0aGUgcGVvcGxlIGp1c3QgZXhwbGFpbmVkIGFsbCBzZWVtZWQgdG8gYmUgY2FsbSwga25ldyB3aGF0IHRvIGRvIG9yIGZvciBhdCBsZWFzdCAxIGVtcGxveWVlIGVuam95ZWQgdGhlIHRyaWxsIG9mIHdvcmtpbmcgYWdhaW5zdCB0aGUgaGFja2VycyB0byBnZXQgdGhpbmdzIGZpeGVkLiBUaGlzIHNob3dzIHRoYXQgaW4gc29tZSBjYXNlcyBwcmV2aW91cyBZb3VUdWJlciBoYWNrcyBtYXkgaGF2ZSBoYWQgdGhlIGV4YWN0IHNhbWUgaXNzdWUgYnV0IGJlY2F1c2UgdGhlIFlvdVR1YmVyIHdhc24ndCBhcyB0ZWNoIHVuZGVyc3RhbmRpbmcgYXMgdGhlIGVudGlyZXR5IG9mIHRoZSBMVFQgdGVhbSB0aGF0IHdvcmtlZCBvbiB0aGUgaGFjayBsaXZlLCB0aGV5IG1heSBhc3N1bWVkIGZha2UgaW5mb3JtYXRpb24gYW5kIHdpdGggbm8gb3RoZXIgaW5mb3JtYXRpb24gaGFkIHRvIHRha2UgYXMgdGhlIG1vc3QgcG9zc2libGUgdHJ1dGguCjxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgVGhlIHJlYWwgcHJvYmxlbSB0aG91IGlzIHVuZGVybHlpbmcgYW5kIHRoaXMgaXMgb25lIG9mIHRoZSBmZXcgdGltZXMgd2UgaGFkIHJlYWwgaW5zaWdodCBpbnRvIGl0IG91dHNpZGUgb2YgdGhlIFlvdVR1YmUgSW50ZXJuYWwgVGVjaG5vbG9naWVzIFRlYW0gJmFtcDsgTWFuYWdlbWVudCBmcmFtZXdvcmsuIEkgbXVzdCBzYXksIGl0J3MgYWJvdXQgdGltZSBiZWNhdXNlIHRoaXMgc2hvd3MgZmxhd3MgbWFqb3IgZmxhd3Mgbm90IG9ubHkgd2l0aCB0aGUgdGVjaCBnaWFudCBidXQgYWxzbyBvbiB0aGUgc29mdC1hbGwtd2FyZSB0ZWNobm9sb2dpZXMgR29vZ2xlLCBNaWNyb3NvZnQsIEFwcGxlIGFuZCBvdGhlciBtYWpvciB0ZWNoIGNvbXBhbmllcyBoYXZlIHNvbGQgdXMuPGJyPjxicj48aDEgYWxpZ249ImNlbnRlciIgc3R5bGU9ImFsaWduOmNlbnRlciI+PGI+IjxpPkl0J3MgYWxsIG9uIHRoZSB3aXJlITwvaT4iPC9iPjxicj48L2gxPjxoMiBhbGlnbj0icmlnaHQiIHN0eWxlPSJhbGlnbjpyaWdodDttYXJnaW4tcmlnaHQ6NSU7Ij48c3VwPjxzdWI+Jm5ic3A7ICZuYnNwOyBVbmtub3duIFRlY2ggR2lhbnQgKDE5OTMtMjAxMyk8L3N1Yj48L3N1cD48L2gyPgo8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNvZnQtYWxsLXdhcmUgaXMgZXZlcnl0aGluZyBkb25lIGJ5IHNvZnR3YXJlLiBBbGwtb24tdGhlLXdpcmUgYWthIDxxPjxpPjEtd2lyZTwvaT48L3E+IGlzIHJ1bm5pbmcgYWxsIHNlcnZpY2VzIG92ZXIgdGhlIGludGVybmV0ICZhbXA7IGNsb3VkLiBUaGUgcHJvYmxlbSB0aG91IGlzIHRoZSBjbG91ZCBpcyBqdXN0IHNvbWVvbmUgZWxzZSdzIGNvbXB1dGVyLiBUaGUgb3RoZXIgcHJvYmxlbSBpcyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgY29tcGFuaWVzIHNheWluZyB0ZWNobm9sb2d5IHdpbGwgbWFrZSBldmVyeXRoaW5nIHNhZmVyLCBmYXN0ZXIsIHN0cm9uZ2VyLCBiZXR0ZXIgaXMgYWxzbyB0aGUgc2FtZSBjb21wYW5pZXMgcHVycG9zZWx5IGNyYWZ0aW5nIGhvbGVzIGluIHRoZWlyIHN5c3RlbSB3aGlsZSBvdGhlciBwYXJ0cyBhcmUgbm93IHN0YXJ0aW5nIHRvIHNob3cgdGhleSB3ZXJlIGp1c3QgZGlnaXRhbCBwYXJsb3IgdHJpY2tzLgo8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNvZnQtYWxsLXdhcmUsIG1ha2UgaXQgYWxsIHNvZnR3YXJlIGlzbid0IGEgYmFkIHByYWN0aWNlLiBUaGlzIGFsbG93cyBmb3Igc21hbGxlciBkZXZpY2VzIHRvIGhhdmUgYmlnLWRldmljZSBmZWVsLiBDaGVhcGVyIGRldmljZXMgY2FuIGFjdCBsaWtlIHJlYWxseSBiaWcgYW5kIGV4cGVuc2l2ZSBkZXZpY2VzLiBUaGUgcHJvYmxlbSwgdG8gcGVyZm9ybSB0aGlzIHBhcmxvciB0cmljayBvZiBtYWtpbmcgYSBzbG93IHNtYWxsIGNoZWFwIGRldmljZSBmZWVsIGZhc3RlciwgYmlnZ2VyLCBhbmQgbW9yZSBleHBlbnNpdmUgaXMgdGhlIHVzZXIncyBkZXZpY2UgaGFzIHRvIHRhbGsgdG8gYW5vdGhlciBkZXZpY2UgZm9yIGV2ZXJ5dGhpbmcuIFNvIGNlcnRpZmljYXRlcyB3ZXJlIGludmVudGVkIHRvIHJlZ3VsYXRlIHRydXN0ZWQgcGFydGllcyBidXQgZXZlbnR1YWxseSB0aGUgPGI+ZDxpPmVlPC9pPnRzPC9iPiB0byBhIHRlY2ggZ2lhbnQncyBjZXJ0cyB3ZXJlIGxlYWtlZCwgdGhlbiBmcm9tIHRoYXQgb3RoZXIncyBnZXQgc3RvbGVuIHRoZW4gZXZlbnR1YWxseSB0aGUgZW50aXJlIGNlcnRpZmljYXRlIHN5c3RlbSBzaG93cyBpdCdzIGEgZmlhdCBzeXN0ZW0uIEl0IHdvcmtzIGNvbXBsZXRlbHkgb24gdHJ1c3QgaW5zdGVhZCBvZiBwcm9vZnMuIENlcnRpZmljYXRlcyBoYXZlIHByb29mcyB3aXRoIHRoZW0gdG8gcHJvdmUgdGhlIGNlcnQgaXMgYXMgaW50ZW5kZWQgYnV0IHdoZW4gdGhlIGNlcnQgaXMgYmVpbmcgdXNlZCB1bi1pbnRlbmRlZGx5IGFzIGludGVuZGVkLCB3ZWxsIHRoYXQncyB1bnN0b3BwYWJsZSBpbiBhIHRydXN0IHN5c3RlbS4gRXZlbiBpZiB0aGVyZSB3YXMgYSBibG9ja2NoYWluIG9mIGNlcnRzLCBpdCdzIGEgdHJ1c3Qgc3lzdGVtIGFuZCB0aGVyZWZvcmUgd2lsbCBhbHdheXMgYmUgYSBwYXJsb3IgdHJpY2suIE5vdGhpbmcgbW9yZSB0aGVuIGV4Y2VsIHNoZWV0IGRhdGFiYXNpbmcuPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGlzIGlzIHdoeSBJIGFtIGNhbGxpbmcgaXQgYSBwYXJsb3IgdHJpY2ssIHRoaXMgY2VydGlmaWNhdGUgc3lzdGVtIHdhcyBzb2xkIGFzIHRoZSBrZXkgdG8gYWxsb3dpbmcgc29mdC1hbGwtd2FyZSB3b3JrIHdpdGhvdXQgd29ycnkuIEluIHJlYWxpdHkgdGhleSBzaG91bGQgaGF2ZSBqdXN0IGJlZW4gaG9uZXN0IGFuZCBzYWlkLCAiPGk+Q2VydGlmaWNhdGVzIGFyZSBhIHRydXN0IG5ldHdvcmsgb2YgcGFpZCBzcG9uc29ycyB0byBiZSBhYmxlIHRvIHByb2R1Y2UgdW5pcXVlIFNIQSBwcm9vZnMgdGhhdCBjYW5ub3QgYmUgZHVwcGVkIG9ubHkgY29waWVkIGZvciBhcyBsb25nIGFzIHRoZSBTSEEgcHJpdmF0ZSBrZXlzIGFyZSBrZXB0IHNhZmUsPC9pPiIgYmVjYXVzZSB0aGVuIHdoZW4gaGFja3MgaGFwcGVuIHBlb3BsZSBtYXkgaGF2ZSBzb29uZXIgdGhvdWdodCwgY2hlY2sgY2VydHMsIGluc3RlYWQgb2YgZmluYWxseSBkaXNjb3ZlcmluZyB0aGUgZmxhdyBvbmx5IGFmdGVyIHRoZSBlbnRpcmV0eSBvZiB0aGUgc3lzdGVtIGZlbGxlZCBmcm9tIGEgR1BVIGNvbXBhbnkgaGFjayBvYnRhaW5pbmcgY29tcGFueSBDY2VydCBwcm9vZnMsIGtleXMsIGFuZCBtb3JlITxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgQmVjYXVzZSB0aGUgdGVjaCBnaWFudHMga25ldyB0aGUgZmxhdyBiZWZvcmUgaXQgd2FzIHB1YmxpYywgdGhleSBzdGFydGVkIHVzaW5nIGFuIGluZGVwZW5kZW50IGRldmVsb3BlZCBzeXN0ZW0gY2FsbGVkIHRva2VuaXphdGlvbi4gVG9rZW5pemluZyBkYXRhIHdhcyBmaXJzdCB0aG91Z2h0IGFzIGJlc3QgZm9yIGludGVybmFsIHVzZSBzeXN0ZW0gYnV0IHdoZW4gPGI+IjxpPmludGVybmFsIHVzZSBvbmx5PC9pPiI8L2I+IGJlY2FtZSA8Yj4iPGk+b3ZlciB0aGUgaW50ZXJuZXQ8L2k+IjwvYj4sIHRva2VuaXplZCBkYXRhIGJlY2FtZSB2ZXJ5IHVzZWZ1bCB2ZXJ5IHF1aWNrbHkuIEluIG1hbnkgY2FzZXMgdG9rZW5pemluZyBvbmx5IHdvcmtzIGJlY2F1c2UgdGhlIHRva2VuIGlzIGJlaW5nIGdlbmVyYXRlZCBvbiBtYWNoaW5lcyBvciBzb2Z0d2FyZSBvd25lZC9vcGVyYXRlZCBieSB0aGUgY29tcGFueSdzIHNvZnR3YXJlIHlvdSBhcmUgdXNpbmcuIEV2ZW4gT3BlcmF0aW5nIFN5c3RlbXMgKDxiPk9TPC9iPikgd2VyZSBhYmxlIHRvIGJlIHRva2VuaXplZCBhbmQgc2VudCBvdmVyIHRoZSB3aXJlLiBJbiBob25lc3R5LCB0aGlzIHdhcyBhIHJlYWwgc3RlcCB0b3dhcmQgbGVnaXRpbWl6aW5nIDxpPnNvZnQtYWxsLXdhcmU8L2k+LiBUaGlzIGlzIHN0aWxsIGZsYXdlZCBiZWNhdXNlIG5vdy1hLWRheXMgYSBtYWNoaW5lIGdpdmVzIHVwIHNvIG11Y2ggaW5mb3JtYXRpb24gbWFueSBoYWNrZXJzIChpbmNsdWRpbmcgPGk+U2NyaXB0ZXJzPC9pPiBha2EgPGk+U2NyaXB0LUtpZGRpZXM8L2k+KSBjYW4gbWltaWMgdGhlc2UgbWFjaGluZXMgdG8gdGhlbiBnYWluIGhpZ2hlciBsZXZlbHMgb2YgYXV0aG9yaXR5IGZvciB0aGUgcHJpdmlsZWdlIG9mIGFjY2Vzc2luZyBvdGhlciBtYWNoaW5lJ3MgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmUgbGluZSwgZXZlbnR1YWxseSB3b3JraW5nIGFsbCB0aGUgd2F5IHVwIHRvIGEgbWFjaGluZSB3aXRoIGVpdGhlciBoaWdoZXN0IEFQSSB0b2tlbiBhY2Nlc3Mgb3IgaGlnaGVzdCBzZWN1cml0eSBhdXRob3JpdHkgdG8gdGhlbiBtYWtlIHdoYXQgZXZlciBhdHRhY2sgdGhleSBuZWVkLiBBbHRob3VnaCB0aGlzIG1heSBzb3VuZCByZWFsbHkgY29tcGxpY2F0ZWQgYnV0IGluIHJlYWxpdHkgaXQncyBhcyBzaW1wbGUgYXMgYSBib3Qgc2VlaW5nIGJpdHMgb2YgZGF0YSB3aGlsZSBzb21lb25lIHVzZXMgYSBtYWNoaW5lIG9uIGEgbmV0d29yayB5b3UgYXJlIG9uIChkb2Vzbid0IGV2ZW4gaGF2ZSB0byBiZSB5b3UpLiBUaGF0IGJvdCBvbiB0aGUgc2FtZSBuZXR3b3JrIGFzIHlvdSBpcyBqdXN0IHNjYW5uaW5nIGFzIG11Y2ggZGF0YSBhcyBwb3NzaWJsZSBhcyBmYXN0IGFzIHBvc3NpYmxlIG9uIHRoZSBuZXR3b3JrIGFuZCB3aXRoaW4gMyBzZWNvbmRzIGNhbiB0cnkgd2l0aGluIDEgbWlsbGlvbiB0aW1lcyAoZGVwZW5kaW5nIG9uIGludGVybmFsIG5ldHdvcmsgc3BlZWRzKSB0byBhc2sgZm9yIHBlcm1pc3Npb25zLCBpbmZvcm1hdGlvbiwgYWNjZXNzLiBEZXBlbmRpbmcgb24geW91ciBzeXN0ZW0sIGl0IG1heSBqdXN0IGFsbG93IHNvbWUgY29ubmVjdGlvbiBhbmQgaW4gYWxtb3N0IGFsbCBjYXNlcyB3aWxsIGdpdmUgaW5mb3JtYXRpb24gYXQgdGhlIGxlYXN0IGxpa2Ugd2hhdCBPUywgYnJvd3NlciBpbmZvcm1hdGlvbiwgdGltZXpvbmUuIERlcGVuZGluZyBvbiB3aG9tLCBob3cgYW5kIHdoZXJlIHRoZSBxdWVzdGlvbiBpcyBjb21pbmcgZnJvbS90byB3aWxsIGRldGVybWluZSBpZiBhbmQgaG93IG11Y2ggaXMgZ2l2ZW4gb3V0LiBTbyBmb3IgZXhhbXBsZSB0aGUgY29tcGFueSBydW5uaW5nIHlvdXIgQ1BVIG9yIEdQVSBhc2tzIHlvdXIgZGV2aWNlIGZvciBpbmZvcm1hdGlvbiwgeW91ciBkZXZpY2UgaXMgZ29pbmcgdG8gZ2l2ZSBxdWl0ZSBhIGJpdCBhbmQgaWYgeW91IGhhdmUgIjxpPkF1dG9tYXRpYyBVcGRhdGVzPC9pPiIgeW91IG1heSBnaXZlIG1vcmUgaW5mb3JtYXRpb24uIFRoaXMgaXMgbm90IHRoZSByZWFzb24gd2h5IHRoZSBoYWNrZXIgZ3JvdXBzIHdlbnQgYWZ0ZXIgQ1BVLCBHUFUsIE9TICZhbXA7IGhhcmR3YXJlIG1hbnVmYWN0dXJlIGNlcnRpZmljYXRlIHByaXZhdGUgaW5mb3JtYXRpb24gYnV0IG9uY2UgdGhleSBoYWQgaXQsIHNvbWVvbmUgcXVpY2tseSBmaWd1cmVkIG91dCBob3cgaXQgd2FzIGEgZ3JlYXQgYXR0YWNrIHZlY3Rvci4gQ1BVICZhbXA7IEdQVSwgZXZlcnlvbmUgaGFzIG9uZSBvciBjaGlwcyBmcm9tIHRoZXNlIG1hbnVmYWN0dXJlcy4gSnVzdCBob3cgc21hcnRwaG9uZSBjYW1lcmEgem9vbWluZyBjaGlwIG1hbnVmYWN0dXJlcyB3ZXJlIGhpdCBzbyBib3RuZXRzIGNvdWxkIHV0aWxpemUgdGhlIG1pbGxpb25zIG9mIGNlbGxwaG9uZXMgd2l0aCB1bnNlY3VyZSBjaGlwcyBvbiB0aGUgUEMgQm9hcmQgb2YgdGhlIGNhbWVyYS4gVGhlIGF0dGFjayBkb2Vzbid0IG5lZWQgYWNjZXNzIHRvIHlvdXIgZGV2aWNlIGJlY2FzdWUgdGhlIHpvb20gY2hpcCBjYW4gYWNjZXNzIHRoZSBDUFUgb3IgYXQgbGVhc3Qgc2VuZCBmb3IgYWN0aXZhdGlvbnMgYW5kIG1vcmUuIERvZXMgeW91ciBjZWxscGhvbmUgaGF2ZSBuYXRpdmUgM0QgZWZmZWN0cyBhbmQgZmlsdGVycz8gWW91IG1heSBoYXZlIGFuIHVuc2VjdXJlIGNhbWVyYSBjaGlwLgo8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRoZSBhdHRhY2tzIGp1c3Qgc3BlYWtpbmcgYWJvdXQgYWxsIHJldm9sdmUgYXJvdW5kIDMtZmFjdG9yczogPGk+VHJ1c3QgQXV0aG9yaXR5IFN5c3RlbSwgSW50ZXJuYWwgU3lzdGVtcyBhcmUgdGhlIEF0dGFjayBMYW5kc2NhcGUsIFRydXN0IEF1dGhvcml0eSAmYW1wOyBJbnRlcm5hbCBTeXN0ZW1zIGFyZSBtb3JlIGZsYXdlZCB0aGVuIG5vbi10cnVzdCAmYW1wOyBleHRlcm5hbCBzeXN0ZW1zPC9pPi4gRWFjaCBvbmUgaGFzIHRoZSBzYW1lIHR5cGUvc3R5bGUgb2YgYXR0YWNrIHdoaWNoIG1lYW5zIGZpbmQgYSB3YXkgdG8gZXhwbG9pdC91c2Ugb25lIGFuZCB0aGUgb3RoZXJzIHByb2JhYmx5IGNhbiB1c2UgdGhlIHNhbWUgYXR0YWNrLiBUaGV5IGFsbCByZWx5IG9uIHRoZSBob3N0aW5nIGNvbXBhbnkgb2YgdGhlIG1hY2hpbmUgeW91ciBkZXZpY2VzIGFyZSBzcGVha2luZyB0by4gQXMgdGhvc2UgY29tcGFuaWVzIGJlY29tZSBiaWdnZXIsIHNvIGRvZXMgdGhlIGF0dGFjayBsYW5kc2NhcGUgYW5kIHNvIHRoZW4gdGhlIGF0dGFjayB2ZWN0b3IgcG9zc2liaWxpdGllcyBvbmx5IG1hZ25pZnkgbm90IG11bHRpcGx5LCBtYWduaWZ5IGJ5IG1hZ25pdHVkZXMgYXQgcGVyIHNxdWFyZWQgb3IgY3ViZWQgcmF0aW9zIHBlciBsZWcgdGhhdCBsYW5kc2NhcGUgaGFzIHRvIHVwaG9sZC4gTWVhbmluZyBzaW1wbGUsIGZvciBldmVyeSAxIHRoaW5nIHRoZSBpbnRlcm5hbCBzeXN0ZW1zIGhhdmUgdG8gaGFuZGxlLCB0aGUgd2F5cyB0byBhdHRhY2sgaW5jcmVhc2UgZWl0aGVyIGluIG11bHRpcGxlcyBvZiAxMCBzcXVhcmVkIG9yIG11bHRpcGxlcyBvZiAxMCBjdWJlZCBwZXIgQVBJIHRoYXQgaW50ZXJuYWwgc3lzdGVtIGhhbmRsZXMgKGluYm91bmQvb3V0Ym91bmQpLiBXZSBjYW4gYXR0ZW1wdCB0byBzdG9wIGJ1dCB3ZSBjYW5ub3QgcHJldmVudCBzbyBub3cgd2hhdCBoYXBwZW5zIHdoZW4gdGhpcyBhdHRhY2sgbGFuZHNjYXBlIGFsc28gaGFuZGxlcyBmZWF0dXJlcyBsaWtlLCAiPGk+UmV2b2tlIEFjY2VzczwvaT4iPyBFdmVuIGZvciBjcm9zcy1hdXRob3JpdHkgY29tbXVuaWNhdGlvbnMsIGlmIGl0J3Mgb3ZlciB0aGUgd2lyZSBhbmQgbm90IGRpcmVjdCBvbiBzZXJ2ZXIvbWFjaGluZSB3ZWxsIHRoYXQgY29tbXVuaWNhdGlvbiBjYW4gYmUgYmxvY2tlZC4KPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBJZiB0aGUgdXNlciBhdHRhY2tpbmcgaGFzIHRoZSBlcXVhbCBwZXJtaXNzaW9uIGxldmVscyBmcm9tIHN0b2xlbiB0b2tlbnMvY2VydHMgdGhlbiBlcXVhbGx5IGlmIHRoZSBhdHRhY2tlciB3YXMgdG8gcmV2b2tlIHlvdXIgYXV0aG9yaXR5IGZpcnN0LCB5b3UgY2FuIG5vIGxvbmdlciByZXZva2UgdGhlaXJzLiBJbiB0aGUgTFRUIGhhY2ssIGluIHNvbWUga2luZGEgZGlsdXRlZCBhdHRhY2sgKG9mdGVuIG5pbmphIGF0dGFja3MgYXJlIGRpbHV0ZWQpLCB0aGUgdG9rZW4gZm9yIGFjY2VzcyB0byBhIGNoYW5uZWwvcG9ydC9ob2xlIGZvciBoaWdoZXIgYWNjZXNzIHRvIHRoZSB1bWJyZWxsYSBjaGFubmVsIHdoaWNoIGVuZGVkIHVwIHRvIGJlIDxiPjxpPkxpbnVzVGVjaFRpcHM8L2k+PC9iPi4gVGhpcyBpcyBhIGdlbmVyaWNhbGx5IHNpbXBsZSB3YXkgdG8gZXhwbGFpbiB0aGUgYXR0YWNrLiBUaGUgYXR0YWNrZXIgd2FzIHVuYWJsZSB0byBiZSByZXZva2VkIGZyb20gTFRUJ3MgZW5kIGFuZCB0aGF0IGNvdWxkIGJlIGZyb20gYSA8aT5maXJzdC1saWdodCBzd2l0Y2g8L2k+IG9yIDxpPnRoZSBmaXJzdCBpbnZva2VkIGZ1bmN0aW9uIGluIHRoZSBhdHRhY2sgb25jZSBwbGFudGVkPC9pPi4gSWYgdGhlIGZpcnN0LWxpZ2h0IHN3aXRjaCB3YXMgdG8gcmV2b2tlIGFsbCB0b3AgYWNjZXNzIHRva2VucyBsb3dlciBvciBlcXVhbCB0byB0aGUgYXR0YWNrZXIncyB0b2tlbiB0aGVuIG9ubHkgaGlnaGVyIGF1dGhvcml0aWVzIGNhbiByZXZva2UuIFRoaXMgY2FuIGJlIHRyaWNreSBieSB0aGUgaGlnaGVyIGF1dGhvcml0eSBiZWNhdXNlIHRoZXkgc2ltcGx5IGNhbm5vdCBqdXN0IGFjdCBvciBlbHNlIHRoYXQncyBhIGRpZmZlcmVudCBhdHRhY2sgbWV0aG9kIHNvIHRoZSBhdHRhY2tzIGJldCBvbiB0aW1lIGJldHdlZW4gdXNlcnMgcmVhbGl6aW5nIHRoZXkgY2Fubm90IHN0b3AgdGhlIGF0dGFjayBhbmQgdGhlbiB0aGUgaGlnaGVyIGF1dGhvcml0eSBnZXR0aW5nIGludm9sdmVkIHRvIHRoZW4gbWFraW5nIGFuIGFjdGlvbi4gVGhlIHdheSB0aGUgYXR0YWNrIHdhcyBkZXNjcmliZWQgYnkgdGhlIExUVCB0ZWFtLCBpdCBkb2VzIGFwcGVhciBldmVyeSBwb2ludCBpbiB0aGVpciBZb3VUdWJlIEhhY2sgd2FzIHZpYSBpbnRlcm5hbCBzeXN0ZW1zIG9uY2UgdGhlIGluaXRpYWwgdG9rZW4gd2FzIHN3ZXB0Ljxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgVGhpcyBpcyB3aHksIGluIG15IG9waW5pb24sIHRoZSBiaWdnZXIgYSB0ZWNoIGNvbXBhbnkgZ2V0cyB0aGUgd29yc2UgaXQncyBzb2Z0d2FyZSBiZWNvbWVzLiBJdCdzIG5vIGRvdWJ0IFdpbmRvd3MgMy4xLCAxOTk4LCBYUCAmYW1wOyA3IGFsbCB3b3JrIGJldHRlciB0aGVuIGN1cnJlbnQgZ2VuZXJhdGlvbiB3aW5kb3dzLiBXaW5kb3dzIHZpc3RhIGhhZCBtYW55ICI8Yj4xLXdpcmU8L2I+IiBidWlsdCBpbiBhbmQgd2FzIGNvbnNpZGVyZWQgdmVyeSB0ZXJyaWJsZS4gVGhlIG92ZXIgdGhlIHdpcmUgc3lzdGVtcyBhbGwgZmFpbCBhcyB0aGUgY29tcGFueSBncm93cy4gTXlzcGFjZSBmZWxsIG91dCBvZiBmYXZvciBhcyBpdCBncmV3IGZhc3Rlci4gRmFjZWJvb2sgb25jZSBpdCBoaXQgdGhlaXIgdWx0aW1hdGUgdG9wLCBwbGF0ZWF1ZWQuCjxicj48YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IElmIHRoaXMgZG9lc24ndCB3b3JrIHdlbGwgb3IgYXMgYWR2ZXJ0aXNlZC9zb2xkLCB3aHkgdXNlIGl0PyBIaWRkZW4gcmV0dXJuIGNvbW11bmljYXRpb25zLiBBdXRvbWF0ZWQgdXBkYXRlcyB3YXMgaW52ZW50ZWQgZm9yIHNvbWVvbmUgdG8ga2VlcCBhIHNvZnR3YXJlIG9yIGdhbWUgdXBkYXRlZCBhbGwgdGhlIHRpbWUgYnkgc2Nhbm5pbmcgYW4gUlNTIGZlZWQgZm9yIG5ldyBlbnRyaWVzIHRoZW4gYXV0b21hdGljYWxseSBncmFiYmluZyBhbmQgaW5zdGFsbGluZyBuZXcgZW50cmllcyB0byBhbiB1cGRhdGUgZm9ydW0uIEFib3V0IDEwIHllYXJzIGFmdGVyIG1vc3QgbWFqb3IgY29tcGFuaWVzIGFuZCBPUydzIHdlcmUgdXRpbGl6aW5nIDxpPmF1dG9tYXRlZCB1cGRhdGVzPC9pPiwgdGhlIGF1dG9tYXRlZCB1cGRhdGVzIHRvb2sgYSB0dXJuIHRvIHdoZXJlIGluIG1hbnkgY2FzZXMgZGV2ZWxvcGVycyBkaXJlY3RseSBvbiBHaXRIdWIgd2VyZSBnaXZlbiBhY2Nlc3MgdG8gcHJvZHVjZSA8aT5hdXRvbWF0ZWQgdXBkYXRlczwvaT4gJmFtcDsgZGVsaXZlciB0aGVtIC0tZnJvbSBHaXRIdWIuIE5vdyB0aGVyZSdzIGEgbmV3IGxlZywgbm93IHRoZXJlJ3MgYSBuZXcgbGFuZHNjYXBlIHRvIHRoZSBhdHRhY2sgbm93Li4udGhlIGF0dGFjayBjYW4gYmUgdXBkYXRlZCB0byB5b3Ugb3ZlciB0aGUgPGk+MS13aXJlIDxiPmF1dG9tYXRlZCB1cGRhdGU8L2I+IHN5c3RlbTwvaT4uIFRoZSByZWFzb24gdGhpcyB3b3JrcyBpcyBiZWNhdXNlIG9mIGhpZGRlbiByZXR1cm4gY29tbXVuaWNhdGlvbnMuIEF0dGFja2VycyBjYW4gYXR0YWNrIHRoZSBoaWRkZW4gcmV0dXJuIGNvbW11bmljYXRpb25zIG9mIGEgcmVhbCBhdXRvIHVwZGF0ZSB0byB0aGVuIGhpamFjayB0aGUgbGluZSBlbnRyeSB0byBwdXNoIGEgbWFsaWNpb3VzIHVwZGF0ZS4gVGhpcyBpcyB3aHkgbWFueSBMaW51eCBhbmQgU3VwZXJVc2VycyBkb24ndCByZWx5IG9uIGF1dG8gdXBkYXRlcywgdGhleSBtYXkgZ2V0IG5vdGlmaWNhdGlvbnMgb2YgdXBkYXRlcyBhdmFpbGFibGUgYnV0IHRoZXkgZWl0aGVyIHZlcmlmeSBpdCBvciB0YWxrIHRvIHBlb3BsZSB3aXRoaW4gdGhlaXIgcGVyc29uYWwgdHJ1c3QgbmV0d29yayB0byBzZWUgaWYgYW55b25lIGVsc2UgdmVyaWZpZWQgaXQuIFNvbWUgcGVvcGxlIGp1c3Qgd2FpdCBsb25nIGVub3VnaCBmb3IgaXNzdWVzIHRvIGJlIHNwb3R0ZWQgb3Igb25seSBnZXQgc3BlY2lmaWMgdGltZS1wb2ludCB1cGRhdGVzLiBUaGlzIGlzIHNvcnRhIHNpbWlsYXIgdG8gc2FpZCBwcmV2aW91c2x5IGJ1dCBpZiBtb3JlIHBlb3BsZSBzZWxmLXZlcmlmaWVkIHRoZW4gdGhlcmUgd291bGQgYmUgbW9yZSBjcm9zcyB2ZXJpZmlhYmxlIGluZm9ybWF0aW9uIHdoaWNoIGNvdWxkIGhlbHAgc3BvdCBwcm9ibGVtcyBmYXN0ZXIgd2l0aGluIHRoZSBjb21tdW5pdHkgYnV0IHRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoYXQgdHlwZSBvZiB2ZWN0b3IuIFRydXN0LCBBdXRvLCBMdXh1cnkgKGV2ZW4gQXNzaXN0aXZlIEx1eHVyeSkgd2lsbCBhbHdheXMgYmUgYSB0eXBlIG9mIGF0dGFjayB2ZWN0b3IsIHdlIGNhbiBvbmx5IHRyeSB0byBzdG9wIGF0dGFja3Mgd2hpY2ggYnJpbmdzIHVwIHRoZSBvcmlnaW5hbCBwb2ludCwgIjxpPjxiPldoYXQgaWYgeW91IGNhbid0IHN0b3AgaXQ/PC9iPjwvaT4iIAo8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRoZSBmZWF0dXJlcyB3aXRoaW4gdGhlIGludGVybmFsIHN5c3RlbXMgY2FuIGJlIHN3aXRjaGVkIG9mZiBiZWZvcmUgeW91IGJ1dCB0aGUgYWJpbGl0eSBmb3IgdGhhdCBzeXN0ZW0gdG8gZXZlbiBjb21tdW5pY2F0ZSBpbiB0aGUgZmlyc3QgcGxhY2UgcmVxdWlyZXMgYSBmcm9tIG9mIHJldHVybiBjb21tdW5pY2F0aW9ucyBhbmQgc28gdGhlIGFiaWxpdHkgdG8gc2VuZCBoaWRkZW4gcmV0dXJuIGNvbW11bmljYXRpb25zIGlzIGFsd2F5cyBwcmVzZW50LiBUaGlzIGlzIHdoZW4gd2UgZ2V0IHRvIHRoZSBjb21tdW5pY2F0aW9ucyBzZW5kaW5nIGJhY2sgdG8gdGhlIHNlcnZlciBpcyBvbmx5IG5lZWRlZCBmcm9tIHNvbWUgYXR0YWNrIHBvaW50cywgdGhlcmUncyBvdGhlciB3YXlzIHRvIGV4cGxvaXQgdGhlIHNhbWUgd2l0aG91dCBhbnkgcmV0dXJuIGNvbW11bmljYXRpb25zIGJ1dCBqdXN0IGhhdmluZyBjZXJ0aWZpY2F0ZS90b2tlbiB0dW5uZWwvYWNjZXNzIGNvbW11bmljYXRpb25zIGlzIHN0aWxsIGV4cGxvaXRhYmxlIGluIHNpbWlsYXIgb3IgdGhlIGV4YWN0IHNhbWUgd2F5cy4gSnVzdCBhcyB0aGUgbWFqb3IgZmxhdyB3aXRoIFNvZnQtYWxsLXdhcmUsIHRoZSBtYWpvciBhdHRhY2sgdmVjdG9yIGZvciB0aGlzIGRpZ2l0YWwgbGFuZHNjYXBlIGlzIGFsc28gcmV0cm9hY3RpdmUuIEFueSB2ZWN0b3IgcG9pbnQgb24gdGhlIHNhbWUgb3IgY29ubmVjdGVkIGxhbmRzY2FwZSBpcyB0aGVuIHZhbHVhYmxlIHRvIHRoZSBvdGhlcidzIHZ1bG5lcmFiaWxpdHkuIEp1c3QgaG93IHJlZmVycmVycyBhbmQgaWZyYW1lcyBhcmUgdnVsbmVyYWJpbGl0aWVzIGJlY2F1c2UgdGhleSBiYXNpY2FsbHkgaW1wb3J0IHRoZSBjb25uZWN0ZWQgZGF0YSB0byB5b3VyIGVuZHBvaW50LCB2dWxuZXJhYmlsaXRpZXMgYW5kIGFsbCBmbGF3cy4gRXZlbiBpZiB0aGVzZSByZWZlcnJlcnMvaWZyYW1lcyBhcmUgd2l0aGluIHRoZSBzYW1lIGludGVybmFsIHN0cnVjdHVyZSwgdGhleSBhcmUgdnVsbmVyYWJsZSB0byB0aGlzIGNvbW11bmljYXRpb25zIHZlY3Rvci48YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRoZSBlbnRpcmUgY29tbXVuaWNhdGlvbiBlbmQtcG9pbnQgY2FuIGJlIG9wZW5lZCBvciBjbG9zZWQgZnJvbSB3aXRoaW4gdGhlIHN5c3RlbS4gVGhlIGludGVybmFsIHN5c3RlbXMgYXJlIGZ1bGx5IGhvbGVkIGZvciBBUElzIHNvIG5vdyBvbmNlIGVudGVyZWQgdmlhIGFueSBwb2ludCwgdGhleSBwcmV0dHkgbXVjaCBnZXQgYWNjZXNzIHRvIG1vcmUgYW5kIGdyZWF0ZXIgYXV0aG9yaXRpZXMuIFRoaXMgaXMgd2h5IGluIHRoZSBwYXN0IHRoZXJlIGhhdmUgYmVlbiB0aW1lcywganVzdCBsaWtlIExUVCwgd2hlcmUgdG8gc29sdmUgdGhlIGF0dGFjayBZb3VUdWJlL0dvb2dsZSAodW5zdXJlIHdoaWNoIGF1dGhvcml0eSBBUEkgdHJpZ2dlcmVkIHRoaXMgc29sdXRpb24gb24gdGhlIGJhY2tlbmQpIGhhZCB0byBkZWxldGUgTFRUJ3MgY2hhbm5lbC4gVGhpcyByZW1vdmVzIGFsbCBwb3NzaWJsZSBhdXRob3JpdHkgdXAgdG8gR29vZ2xlLiBBZnRlciB0aGF0IG9ubHkgR29vZ2xlIGF1dGhvcml0eSBjYW4gcHVsbCB0aGF0IGRhdGEgb3V0IG9mIGl0J3MgaGlzdG9yeSBzZXJ2ZXJzLiBJZiB0aGUgYXR0YWNrZXJzIGV2ZXIgbWFrZSBpdCB0aGF0IGZhciB1cCAod2hpY2ggdGhleSBoYXZlIGJlZm9yZSksIHRoaXMgYXR0YWNrIGNoYWluIGNhbiBnbyBvbiBsaXRlcmFsbHkgZm9yZXZlciBvciB1bnRpbCBZb3VUdWJlIGlzIHNodXRkb3duIGFuZCByZWJvb3RlZCAoYXMgdGhleSBkbyB3aXRoIGFjY291bnRzKSBmb3IgdGhhdCB3b3VsZCByZXF1aXJlIGV2ZW4gaGlnaGVyIGFjY2VzcyB3aXRoaW4gdGhlIEdvb2dsZSBhdXRob3JpdHkgY2hhaW4uIEV2ZW50dWFsbHkgeW91IGdldCB0byBhIHBvaW50IHdoZXJlIGl0J3MgcG9zc2libGUgZm9yIGFuIGF0dGFja2VyIHRvIGdhaW4gZnVsbCBjb250cm9sbGluZyBhY2Nlc3Mgb2YgZ29vZ2xlIGJlY2F1c2Ugb2YgYSB0b2tlbiBmcm9tIGEgY2hhbm5lbCB1c2VyIG9uIGEgc2lkZS1sZWcgb2YgdGhlIHNhbWUgaW50ZXJuYWwgc3lzdGVtIGFzIEdvb2dsZS4gUmVtZW1iZXIgd2hlbiBGYWNlYm9vayB3ZW50IG9mZmxpbmUgZm9yIGEgZGF5LCB0aGlzIGNvdWxkIGJlIGJpZ2dlci4KPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGVzZSBiaWcgY2xvdWQgaW5mcmFzdHJ1Y3R1cmVzIG1heSBiZSBkaXN0cmlidXRlZCBidXQgYXJlIGFsbCBjZW50cmFsaXppbmdseSBjb250cm9sbGVkIHZpYSB0aGUgY29uc2Vuc3VzIHdhbGwgYnkgc2ltcGx5IG5vdCBoYXZpbmcgYSBjb25zZW5zdXMgYmFzZWQgb24gcHJvb2ZzIGFuZCB3b3JrLiBJbnN0ZWFkIHRoZXkgYXJlIGJhc2VkIG9uIHRydXN0IGFuZCBoaWRpbmcgdGhpbmdzIHRoZSBiZXN0IHRoZSBjb3Jwb3JhdGlvbihzKSBjYW4uCjxicj4KPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGVyZSBhcmUgc29sdXRpb25zIGJ1dCB1bmZvcnR1bmF0ZWx5IGV2ZW4gdGhvc2UgYXJlIGZsYXdlZCBzdGlsbCBhdCB0aGUgbW9tZW50LlRoZSBsYXN0IDIwIHllYXJzIGhhZCBhICI8aT5KdW1wIEluIFRlY2hub2xvZ3k8L2k+IiBidXQgaW4gcmVhbGl0eSB0aGUgbWFjaGluZSBvciBoYXJkd2FyZSBoYXMgIjxpPjxiPkp1bXBlZCBJbiBUZWNobm9sb2d5PC9iPjwvaT4iIGJ1dCB0aGF0J3MgcmVhbGx5IGFib3V0IGl0LiBUaGUgdGVjaG5pY2FsIHNvZnR3YXJlICI8Yj5KdW1wPC9iPiIgd2FzIGFsbCBhIGZhw6dhZGUsIGl0IHdhcyBleGNlbCBiYXNlZCBkYXRhYmFzZSB0ZWNobmlxdWVzIGFjdGluZyBhcyByZWFsIG1hdGhlbWF0aWNhbCBvciBzY3JpcHQtd2lzZSBzb2x1dGlvbnMuIEluc3RlYWQgd2UgZ290IEFQSSB0byBzcHJlZWRzaGVldGluZy4gVGhpcyBpcyB3aHkgYmxvY2tjaGFpbiBkYXRhYmFzaW5nIGlzIGhlbHBpbmcgcmVtb3ZlIG1hbnkgYXR0YWNrIHZlY3RvcnMgYnkgcmVtb3ZpbmcgbGVncyBhbmQgc2ltcGxpZnlpbmcgb3Igc2NhbGluZy1kb3duIHRoZSBsYW5kc2NhcGUgaW4gd2hpY2ggYXR0YWNrcyBjYW4gZXZlbiBiZSBtYWRlLjxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgSWYgdGhlIExUVCBZb3VUdWJlIENoYW5uZWwgSGFjayB0YXVnaHQgcGVvcGxlIGFueXRoaW5nIGlzIHRoYXQgYWxsIG9mIHRoZSBvdmVyLXRoZS1pbnRlcm5ldCBzZWN1cml0aWVzIGFyZSBhbGwgZmHDp2FkZXMgYW5kIHdpbGwgZmFpbCwgeW91IGNhbiBlaXRoZXIga2VlcCBtb3ZpbmcgZnJvbSBmbGF3IHRvIGZsYXcganVzdCBtaXRpZ2F0aW5nIHRoZSB0aW1lIGJlZm9yZSB5b3VyIG5leHQgaGl0IG9yIHlvdSBjYW4gY2hhbmdlIHN5c3RlbXMgYW5kIGhhc2ggeW91ciBsaWZlIHdpdGggaGFzaGxpbmtzLCBoYXNoZWQtbWVzaG5ldHMsIGR5bmFtaWMtaGFzaGluZyB3ZWItYXBwbGljYXRpb25zIGZvciB2ZXJpZmlhYmxlIGRhdGEtQVBJIHN0cnVjdHVyZXMuIExldCdzIHJlbW92ZSB0cnVzdCBhbmQgdGFrZSBiYWNrIHRoZSBpbnRlcm5ldC4gVGhlIGxvbmdlciB3ZSBsZXQgY29tcGFuaWVzIHNlZSB3aGF0IHdlIGRvIHRocm91Z2ggdGhlaXIgaGlkZGVuIGNvbW11bmljYXRpb25zLCB0aGUgbW9yZSB0aG9zZSBzeXN0ZW1zIHdpbGwgYmUgaGl0IGJ5IGF0dGFja2VycywgaGFja2VycywgYm90cyBhbmQgZ292ZXJubWVudHMuIFRoaXMgaXMgd2h5LCB0aGV5IHdpbGwgZmFpbCBmb3JldmVyIHVudGlsIHRoZXkgY29tcGxldGVseSByZW1vdmUgdGhlaXIgZXllcyBmcm9tIHRoZSBkaWdpdGFsIGxhbmRzY2FwZS48L3NwYW4+PC9oND48L2xhYmVsPiZuYnNwOyA8bGFiZWw+PHNwYW4gYWxpZ249InJpZ2h0IiBzdHlsZT0icmlnaHQ6MDsiPjxoNCBzdHlsZT0ibWFyZ2luLXRvcDotMi41dnc7bWFyZ2luLWJvdHRvbTotMnZ3OyI+PHNwYW4gYWxpZ249InJpZ2h0IiBzdHlsZT0icmlnaHQ6MDsiIGlkPSJvdXRib3R0Ij4zRG91Z2xhcyAiPGI+PGk+M0Q8L2k+PC9iPiIgUGlobDwvc3Bhbj4gJm5ic3A7IEA8c3BhbiBpZD0iYXV0aG9ybmFtZSI+SUZ0ZG9DQ2dRRE5FYjNWbmJHRnpJQ0k4WWo0OGFUNHpSRHd2YVQ0OEwySStJaUJRYVdoc29DQ2dJRnNqVnpBeFZWZFVVazVTUm13MVZHMXdjazB3TlVWVVdHUk9aSG93T1ZoVFFUWlBhVUppVW10V1EwNUVTWGROYWs1a1hTQT08L3NwYW4+PC9oND4KJm5ic3A7ICZuYnNwOzxzcGFuIHN0eWxlPSJ3aWR0aDo1dnc7bWFyZ2luLXRvcDotMy41dnc7bWFyZ2luLWJvdHRvbTotMC41dnc7IiBpZD0iYWRoZXJlIiBhbGlnbj0ibGVmdCIgb25jbGljaz0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbGluaycpLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWR0ZXh0aW4nKS5zdHlsZS5kaXNwbGF5PSdub25lJzsiPjxicj48L3NwYW4+PHNwYW4gYWxpZ249ImNlbnRlciIgaWQ9ImFkaW1nIiBzdHlsZT0id2lkdGg6OTglO3JpZ2h0OjUwO2xlZnQ6NTA7aGVpZ2h0OmF1dG87IiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyI+PGEgYWxpZ249ImNlbnRlciIgaHJlZj0iIiB0YXJnZXQ9Il9ibGFuayIgOz0iIiByZWw9Im5vcmVmZXJyZXIgbm9vcGVuZXIiPjxpbWcgc3JjPSJJbWFnZSBMaW5rIiBzdHlsZT0id2lkdGg6OTglOyBhbGlnbjpjZW50ZXI7IiBhbGlnbj0iY2VudGVyIj48L2E+PC9zcGFuPgombmJzcDs8bGFiZWw+PGhyIHN0eWxlPSJtYXJnaW4tdG9wOjAuNXZ3O21hcmdpbi1ib3R0b206LTAuNzV2dzsiPjxoMyBhbGlnbj0iY2VudGVyIj48c3BhbiBpZD0icHJlbmFtZSI+PHN1Yj5JZiB5b3UgbGlrZWQgdGhpcyBQdnRQcHIgcGxlYXNlIGNvbnNpZGVyIGRvbmF0aW5nIHRvIHRoZSBhdXRob3IsIDNEb3VnbGFzICI8Yj48aT4zRDwvaT48L2I+IiBQaWhsLCBieSB1c2luZyB0aGUgY3J5cHRvLWFkZHJlc3Mgb3IgQ29pbnRyZWUgbGluayBiZWxvdy4gJm5ic3A7IFRoYW5rIHlvdS48L3N1Yj48YnI+PGJyPjwvc3Bhbj48c3ViPjxzcGFuIGFsaWduPSJsZWZ0Ij48Yj48aT48c3BhbiBpZD0iYnRjYWRkeSI+V0FYUDovLzNELk5pbmphPC9zcGFuPjwvaT48L2I+PC9zcGFuPiAmbmJzcDsgPGI+PHNwYW4gYWxpZ249InJpZ2h0Ij48aT48c3BhbiBpZD0ibHRjYWRkeSI+PGEgaHJlZj0iaHR0cHM6Ly9jb2ludHIuZWUvM0RfIiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmRhcmtncmVlbjsiPjNEXydzIENvaW50ci5lZTwvYT48L3NwYW4+PC9pPjwvc3Bhbj48L2I+PC9zdWI+PC9oMz48aDQgaWQ9InR1YmVhaXIiIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PHN1cD5QdnRQcHJzIGNhbiBiZSBtb25ldGl6ZWQgYnkgQml0dHViZSBBaXJ0aW1lICZhbXA7IHRvIGhlbHAgdGhlIGF1dGhvciBnaWFuICQ8aT5UVUJFUzwvaT4gZnJvbSB5b3UgcmVhZGluZyB0aGlzIHBhcGVyLCBwbGVhc2UgdXNlIG9yIGluc3RhbGwgdGhlIDxzcGFuIG9uY2xpY2s9IndpbmRvdy5vcGVuKCdodHRwczovL2Nocm9tZS5nb29nbGUuY29tL3dlYnN0b3JlL2RldGFpbC9iaXR0dWJlLWFpcnRpbWUtZG9uYXRpb25zL2Nub2diYm1jaWZmcGlibWtwaG9ocGViZ2htb21hZW1pJykiIHN0eWxlPSJjb2xvcjpncmVlbjsiPkJpdHR1YmUgQWlydGltZSBFeHRlbnNpb248L3NwYW4+IG9yIHVzZSB0aGUgPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIiBvbmNsaWNrPSJ3aW5kb3cub3BlbignaHR0cHM6Ly9iaXR0dWJlLmFwcCcpIj5CaXR0dWJlIEJyb3dzZXI8L3NwYW4+Ljwvc3VwPjwvaDQ+PC9sYWJlbD4KJm5ic3A7PGRpdiBhbGlnbj0iY2VudGVyIj48bGFiZWw+PGg1IHN0eWxlPSJtYXJnaW4tdG9wOi0ydnc7Ij48c3BhbiBzdHlsZT0ibGVmdDowOyBtYXJnaW4tcmlnaHQ6Mi41dnc7bWFyZ2luLWxlZnQ6LTEuNXZ3OyIgYWxpZ249ImxlZnQiPk1hZGUmbmJzcDt3aXRoJm5ic3A7PHNwYW4gaWQ9IkRGQ2FiaW5ldCIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lOyI+PGEgaHJlZj0iaHR0cHM6Ly9QdnRQcHIuYXBwL1dyaXRlIiB0YXJnZXQ9Il9ibGFuayI+UHZ0UHByJm5ic3A7R2VuZXJhdG9yJm5ic3A7TGl0ZTwvYT48L3NwYW4+PHN1cD48c3VwIGlkPSJ5ZWFyMSI+MjAyMzwvc3VwPjwvc3VwPjwvc3Bhbj4gPHNwYW4gaWQ9InByZXYiIHN0eWxlPSJtYXJnaW4tdG9wOi0xLjVweDttYXJnaW4tYm90dG9tOjEuNXB4OyBtYXJnaW4tbGVmdDoyLjV2dzsgcmlnaHQ6MDsgbWFyZ2luLXJpZ2h0Oi0xLjV2dztib3JkZXItcmFkaXVzOjE1JTtwYWRkaW5nOjNweDsiIGFsaWduPSJyaWdodCI+PGEgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMQ2t6VFhlMEJFcHhleXNFYzNnNVg2a0xoZlFYWTdMVTUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiIHN0eWxlPSJib3JkZXI6IDAuMDF2dyBzb2xpZCBkYXJrZ3JlZW47IGJhY2tncm91bmQtY29sb3I6bGltZWdyZWVuOyBjb2xvcjpibGFjazsgYm94LXNoYWRvdzpkaW1ncmV5IDNweCA2cHggOXB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsiPlByZXZpb3VzJm5ic3A7UGFwZXI8L2E+PC9zcGFuPjwvaDU+PC9sYWJlbD48c3BhbiBzdHlsZT0iYm94LXNoYWRvdzpkaW1ncmV5IDNweCA2cHggOXB4O2xlZnQ6MDsiIGFsaWduPSJsZWZ0IiBpZD0iY2VydGFibGUiPjxhIGhyZWY9Imh0dHBzOi8vcHZ0cHByLmFwcC9jZXJ0cyIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrO2NvbG9yOndoaXRlOyI+R2V0Jm5ic3A7YSZuYnNwO0NlcnRhYmxlPC9hPjwvc3Bhbj48L2Rpdj4KJm5ic3A7PGhyPjxzcGFuIGlkPSJxcmltZyIgY2xhc3M9InFyaW1nIiBhbGlnbj0icmlnaHQiIHN0eWxlPSJyaWdodDowO21hcmdpbi1sZWZ0OjUwJTsiPjxpbWcgY2xhc3M9InFyaW1nIiBzcmM9Imh0dHBzOi8venhpbmcub3JnL3cvY2hhcnQ/Y2h0PXFyJmFtcDtjaHM9MTE1eDExNSZhbXA7Y2hsZD1IfDEmYW1wO2Nob2U9VVRGLTgmYW1wO2NobD1odHRwczovL3R3aXR0ZXIuY29tL1owTThJM0QiIGFsaWduPSJyaWdodCI+PC9zcGFuPjxzcGFuIHN0eWxlPSJvcGFjaXR5OjAuNTM7Y29sb3I6Z3JleTsiIGFsaWduPSJsZWZ0Ij4mbmJzcDsKJm5ic3A7PGJyPjxzcGFuIG9uY2xpY2s9ImFsYWxlcnQoKSI+UHZ0UHByLiAyMDE4LTxzcGFuIGlkPSJ5ZWFyMiI+MjAyMzwvc3Bhbj4gPGJyPiBQcml2YXRlIFBhcGVyIDIwMTgtPHNwYW4gaWQ9InllYXIzIj4yMDIzPC9zcGFuPjwvc3Bhbj4gPGJyPgo8c3BhbiBpZD0iZm9vdGVuIiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdHNwJykuc3R5bGUuZGlzcGxheT0nYmxvY2snOyI+QSBUaG91Z2h0IENoaWxkIG9mIHRoZSAzIEpva2Vyczwvc3Bhbj4KPHNwYW4gaWQ9ImZvb3RzcCIgb25jbGljaz0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvb3RjaCcpLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPlVuIHBlbnNhbWllbnRvIGhpam8gZGUgbG9zIDMgY29tb2RpbmVzPC9zcGFuPgo8c3BhbiBpZD0iZm9vdGNoIiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdGpwJykuc3R5bGUuZGlzcGxheT0nYmxvY2snOyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+5LiJ5Liq5bCP5LiR55qE5oCd5oOz5a2p5a2QPC9zcGFuPgo8c3BhbiBpZD0iZm9vdGpwIiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdHJ1Jykuc3R5bGUuZGlzcGxheT0nYmxvY2snOyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+M+S6uuOBruOCuOODp+ODvOOCq+ODvOOBruaAneiAg+OBruWtkDwvc3Bhbj4KPHNwYW4gaWQ9ImZvb3RydSIgb25jbGljaz0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvb3RzdycpLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPtCc0YvRgdC70LXQvdC90L7QtSDQlNC40YLRjyAzINCU0LbQvtC60LXRgNC+0LI8L3NwYW4+CjxzcGFuIGlkPSJmb290c3ciIG9uY2xpY2s9InRoaXMuc3R5bGUuZGlzcGxheT0nbm9uZSc7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb290ZHUnKS5zdHlsZS5kaXNwbGF5PSdibG9jayc7IiBzdHlsZT0iZGlzcGxheTpub25lIj5FdHQgdMOkbmt0IGJhcm4gYXYgZGUgMyBqb2thcm5hPC9zcGFuPgo8c3BhbiBpZD0iZm9vdGR1IiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdGVuJykuc3R5bGUuZGlzcGxheT0nYmxvY2snOyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+RWluIEdlZGFua2Vua2luZCBkZXIgMyBKb2tlcjwvc3Bhbj4KPC9zcGFuPjxicj48cCBhbGlnbj0iY2VudGVyIj48L3A+PHAgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6YmxhY2s7Y29sb3I6c2lsdmVyO2JveC1zaGFkb3c6ZGltZ3JleSAzcHggNnB4IDlweDt0ZXh0LWFsaWduOmxlZnQ7bGVmdDowO3dpZHRoOmF1dG87YnJlYWstd29yZDprZWVwLWFsbDsiIGFsaWduPSJsZWZ0IiByZWw9Im5vcmVmZXJyZXIgbm9vcGVuZXIiIHRhcmdldD0iX3NlbGYiIG9uY2xpY2s9IndpbmRvdy5vcGVuKCdodHRwczovL1B2dFBwci5hcHAvTmV3c2NoYWluJyk7Ij5SZWFkJm5ic3A7dGhlJm5ic3A7T2ZmaWNpYWwmbmJzcDtQdnRQcHImbmJzcDs8Yj48aT5OZXdzY2hhaW48L2k+PC9iPjwvcD48cCBvbmNsaWNrPSJBbGVydENoZWNrKCk7IiBpZD0iTGlua0NvdmVyIiBzdHlsZT0iY29sb3I6c2lsdmVyO3dvcmQtYnJlYWs6a2VlcC1hbGw7d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7bWFyZ2luLXRvcDotMnZ3O3RleHQtYWxpZ246cmlnaHQ7YmFja2dyb3VuZC1jb2xvcjpibGFjaztib3gtc2hhZG93OmRpbWdyZXkgM3B4IDZweCA5cHg7Ij4zRDombmJzcDs8Yj4jPGk+MTUzMTdmZXV3Z3M4am88L2k+PC9iPjwvcD48cD48L3A+PGhyPjxicj48YnI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+CjxzY3JpcHQ+wqAKCgrCoCDCoCAvLyBBZGRlZCBldmVudCBsaXN0ZW5lciB0byB0aGUgc2Nyb2xswqAKwqAgwqAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcswqAKwqAgwqAgwqAgwqAgwqAgwqAgbW92ZVNjcm9sbEluZGljYXRvcik7wqAKCgrCoCDCoCAvLyBHZXR0aW5nIHNjcm9sbEluZGljYXRvciBlbGVtZW50IGJ5IElEwqAKwqAgwqAgY29uc3Qgc2Nyb2xsSW5kaWNhdG9yRWx0ID3CoMKgCsKgIMKgIMKgIMKgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxJbmRpY2F0b3InKTvCoAoKCsKgIMKgIC8vIEhlaWdodCBvZiBlbnRpcmUgd2ViIHBhZ2UgLSBoZWlnaHTCoArCoCDCoCAvLyBvZiB2aWV3YWJsZSBwb3J0aW9uIG9mIGJyb3dzZXLCoArCoCDCoCBjb25zdCBtYXhIZWlnaHQgPcKgwqAKwqAgwqAgwqAgwqAgd2luZG93LmRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0wqDCoArCoCDCoCDCoCDCoCAtIHdpbmRvdy5pbm5lckhlaWdodDvCoAoKCsKgIMKgIGZ1bmN0aW9uIG1vdmVTY3JvbGxJbmRpY2F0b3IoZSkge8KgCgoKwqAgwqAgwqAgwqAgLy8gQ2FsY3VsYXRpbmcgd2lkdGggb2YgdGhlwqDCoArCoCDCoCDCoCDCoCAvLyBzY3JvbGxJbmRpY2F0b3IgZWxlbWVudMKgCsKgIMKgIMKgIMKgIGNvbnN0IHBlcmNlbnRhZ2UgPcKgwqAKwqAgwqAgwqAgwqAgwqAgwqAgKCh3aW5kb3cuc2Nyb2xsWSkgLyBtYXhIZWlnaHQpICogMTAwO8KgCgoKwqAgwqAgwqAgwqAgLy8gUGl4ZWxzIHNjcm9sbGVkIGJ5IHRoZSB1c2VywqDCoArCoCDCoCDCoCDCoCAvLyB0byB0b3RhbCBzY3JvbGxhYmxlIFBpeGVsc8KgCsKgIMKgIMKgIMKgIHNjcm9sbEluZGljYXRvckVsdC5zdHlsZS53aWR0aMKgCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPSBwZXJjZW50YWdlICsgJyUnO8KgCsKgIMKgIH3CoAo8L3NjcmlwdD4mbmJzcDsKPHNjcmlwdD4KwqAKwqBmdW5jdGlvbiBhbGFsZXJ0KCl7CsKgIGFsZXJ0KCdIZWxsbyAmIFdlbGNvbWUgdG8gdGhlIHRoaXMgUHZ0UHByIFtwcsSrdml0IHDEgXDJmXJdLlxuXG5QdnRQcHIgaXMgYnJvdWdodCB0byB5b3UgYnkgM0csIDNEICYgRS1ULlxuXG5UaGlzIGlzIGhvYXN0ZWQgYnkgZXhwZXJpbWVudGFsIHRlY2hub2xvZ3kgaW4gaGFzaGxpbmtzIHRvIHN0b3JlIGFsbCBvZiB0aGUgY29kZSArIHRleHQgZGlyZWN0bHkgaW50byB0aGUgbGluay5cblxuU2VydmVycy9Ob2RlcyBhcmUgdXNlZCBmb3IgZGVjcnl0aW5nIHRoZSBoYXNobGluayBmb3IgdGhlIGJyb3dzZXIgdG8gZGlzcGxheSB0aGUgaW50ZXJuYWwgaW5mb3JtYXRpb24gYnV0IHRoZXkgY2FuIGJlIGRlY3J5cHRlZCB3aXRob3V0IHNlcnZlcnMuXG5cblxuVGhhbmsgeW91LlxuwqAgwqAgwqBbTFMwelJBOjpKQU4xNjIwMjBdXG5cbsKgIMKgIMKgTGFzdCBVcGRhdGUgW0FQUjA3MjAyMjo6TFMwelJBXScpOwrCoH0KwqBmdW5jdGlvbiBBbGVydENoZWNrKCkgewrCoCBhbGVydCgiWW91IGNsaWNrZWQgb24gYW4gZWFzdGVyIGVnZy5cblxuVGhpcyBQdnRQcHIgd2FzIG1hZGUgd2l0aCB0aGUgUHZ0UHByIEdlbmVyYXRvciAoUFBHZW4pLiBUaGlzIGlzIGEgbmV3c3BhcGVyIHN5c3RlbSB3aXRoIGV2ZXJ5b25lIGluIG1pbmQuIEFueW9uZSBjYW4gdXNlIG91ciBnZW5lcmF0b3JzIHRvIGJ1aWxkIHRoZWlyIG93biBwcml2YXRlIHBhcGVyIChQdnRQcHIpIHdpdGggYWxsIHRoZSBkYXRhIHN0b3JlZCBpbiB0aGUgbGluayBpbnN0ZWFkIG9mIGEgc2VydmVyLlxuXG5cblxuVGhhbmsgWW91XG7CoCDCoCDCoFtMUzB6UkE6OkZFQjE4MjAyMF1cblxuwqAgwqAgwqBMYXN0IFVwZGF0ZSBbQVBSMDcyMDIyOjpMUzB6UkFdIik7CsKgfQrCoAo8L3NjcmlwdD4KPG1ldGEgbmFtZT0iYWlydGltZS1wbGF0Zm9ybS1kaXNwbGF5IiBjb250ZW50PSIiPjxtZXRhIG5hbWU9ImFpcnRpbWUtcGxhdGZvcm0taWQiIGNvbnRlbnQ9IiI+PHNjcmlwdCBzcmM9Imh0dHBzOi8vYml0dHViZWFwcC5jb20vdHViZXBheS9haXJ0aW1lLmxvYWRlci5qcyIgZGF0YS12ZXJpZnk9Im1ldGEiIGRhdGEtYXV0b3N0YXJ0PSJ0cnVlIj48L3NjcmlwdD48L2E+
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
104.16.123.175 -, , ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
/
Resource Hash

Request headers

accept-language
se-SE,se;q=0.9
Referer
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.146 Safari/537.36

Response headers

pZ7VdHrWDXWRmUkfhhOO--3--m5f8k_6x.jpg
images.nightcafe.studio/jobs/pZ7VdHrWDXWRmUkfhhOO/ Frame 977F
314 KB
315 KB
Image
General
Full URL
https://images.nightcafe.studio/jobs/pZ7VdHrWDXWRmUkfhhOO/pZ7VdHrWDXWRmUkfhhOO--3--m5f8k_6x.jpg
Requested by
Host: text
URL: data:text/html;charset=utf-8;base64,PG1ldGEgY2hhcnNldD0idXRmLTgiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPjxiYXNlIHRhcmdldD0iX3RvcCI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj5ib2R5e21hcmdpbjowIGF1dG87cGFkZGluZzoxMnZtaW4gMTB2bWluO21heC13aWR0aDozNWVtO2xpbmUtaGVpZ2h0OjEuNWVtO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LHNhbnMtc2VyaWY7d29yZC13cmFwOmJyZWFrLXdvcmQ7fUBtZWRpYShwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayl7Ym9keXtjb2xvcjp3aGl0ZTtiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrO319PC9zdHlsZT4gPGEgdGFyZ2V0PSJfdG9wIiBpZD0ibGluayIgbmFtZT0ibGluayIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsiPjxkaXYgaWQ9ImljaGVjayIgc3R5bGU9Im1hcmdpbi10b3A6LTd2dzsiPgoKCiZuYnNwOzxzdHlsZT4gLmxpbmUge2JhY2tncm91bmQ6IGJsYWNrO29wYWNpdHk6IDAuNTtoZWlnaHQ6IDQuNXB4Oy13ZWJraXQtYm94LXNoYWRvdzogMnB4IC0ycHggM3B4IGRpbWdyZXk7Ym94LXNoYWRvdzogMnB4IC0ycHggM3B4IGRpbWdyZXk7d2lkdGg6IDAlO3Bvc2l0aW9uOiBmaXhlZDtib3R0b206IDA7bGVmdDowO2FsaWduOmNlbnRlcjt6LWluZGV4Ojg7fcKgIMKgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOS45aW4pIHsgLnFyaW1nIHthbGlnbjogcmlnaHQ7cmlnaHQ6MDttYXJnaW4tcmlnaHQ6LTMuNSU7bWFyZ2luLWJvdHRvbTotNTAlO3BhZGRpbmctcmlnaHQ6LTEuNSU7d2lkdGg6MzAlO30gLnRvcGJhciB7bWFyZ2luLXRvcDotM3Z3O21hcmdpbi1sZWZ0Oi0zdnc7bWFyZ2luLXJpZ2h0Oi0zdnc7fSAubGluZSB7bWFyZ2luLWxlZnQ6MC41JTthbGlnbjpjZW50ZXI7bGVmdDowO319IEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwaW4pIHsgLnFyaW1nIHthbGlnbjogcmlnaHQ7bWFyZ2luLWJvdHRvbTotNTAlO3dpZHRoOjIwJTt9LmxpbmUge21hcmdpbi1sZWZ0OjAlO2FsaWduOmNlbnRlcjtsZWZ0OjA7fX3CoCA8L3N0eWxlPiZuYnNwOyA8ZGl2IGNsYXNzPSJsaW5lIiBpZD0ic2Nyb2xsSW5kaWNhdG9yIj48L2Rpdj48L2Rpdj48c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vZW1iZWRkYWJsZS1uZnRzL2Rpc3QvbmZ0LWNhcmQubWluLmpzIj48L3NjcmlwdD48ZGl2IGlkPSJiYWNrZ3JvdW5kIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTotMTV2dzsiPjxsYWJlbD48aDEgc3R5bGU9Im1hcmdpbi1ib3R0b206LTJ2dzsiPjxzcGFuIHN0eWxlPSJsZWZ0OjA7IiBhbGlnbj0ibGVmdCIgaWQ9Im91dHRvcCI+V2hhdCBTaG91bGQgQmUgTGVhcm5lZCBmcm9tIHRoZSBMVFQgSGFjazwvc3Bhbj48L2gxPjwvbGFiZWw+Jm5ic3A7IDxsYWJlbD48aDQgYWxpZ249InJpZ2h0IiBzdHlsZT0icmlnaHQ6MDsiPjxzcGFuIGFsaWduPSJyaWdodCIgc3R5bGU9InJpZ2h0OjA7IiBpZD0ib3V0bWlkIj4jTFRUICNMVFRoYWNrICNIYWNrICNMVFRoYWNrMjM8L3NwYW4+PGhyIHN0eWxlPSJtYXJnaW4tYm90dG9tOi0zdnc7Ij48L2g0PjwvbGFiZWw+CiZuYnNwOyAmbmJzcDs8c3BhbiBhbGlnbj0iY2VudGVyIiBpZD0iaW1nMSIgc3R5bGU9IndpZHRoOjk2dnc7cmlnaHQ6NTA7bGVmdDo1MDtoZWlnaHQ6YXV0bzsiPjxpbWcgc3JjPSJodHRwczovL2ltYWdlcy5uaWdodGNhZmUuc3R1ZGlvL2pvYnMvcFo3VmRIcldEWFdSbVVrZmhoT08vcFo3VmRIcldEWFdSbVVrZmhoT08tLTMtLW01ZjhrXzZ4LmpwZyIgc3R5bGU9IndpZHRoOjk5JTsiIGFsaWduPSJjZW50ZXIiPjwvc3Bhbj4KPGxhYmVsPjxoNCBzdHlsZT0iZm9udC13ZWlnaHQ6bm9ybWFsOyI+PHNwYW4gaWQ9Im91dG91dCIgc3R5bGU9ImZvbnQtd2VpZ2h0Om5vcm1hbDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBNYWpvciB0ZWNoIGNvbXBhbmllcyB3ZW50IGZyb20gaGVscGluZyB0aGUgc29jaWV0eSBhcm91bmQgdGhlbSB0byB0YWtpbmcgZnJvbSB0aGUgc29jaWV0eSBhcm91bmQgdGhlbSB0byBub3cgY29udHJvbGxpbmcgdGhlIHNvY2lldHkgYXJvdW5kIHRoZW0uIFRoZSA8aT5UZWNoIEdpYW50czwvaT4gcGxhbnRlZCB0aGVpciBmZWV0IGluIHRoZSBkaXJ0IGJ5IGhlbHBpbmcgdXMsIHRoZW4gdGhleSBnYXZlIHVzIGhvcGVzIG9mIHNlY3VyaXR5ICZhbXA7IHNhZmV0eSBvbmx5IHRvIHR1cm4gYW5kIGN1dCBob2xlcyBpbnRvIHRoZWlyIHN5c3RlbXMganVzdCB0byBsZXQgdGhlIGdvdmVybm1lbnRzIGluLiBUaGUgcHJvYmxlbSB3aXRoIGhvbGVzIGlzIHlvdSBjYW4ndCBwaWNrIGFuZCBjaG9vc2Ugd2hhdCBnb2VzIHRocm91Z2ggdGhlbS4KPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBIYXZpbmcgYmFja2Rvb3JzIGV2ZW4gZm9yIHlvdXIgb3duIHRlYW0sIHBlb3BsZXMsIHN5c3RlbXMsIGV0YyBnaXZlcyB0aGUgYWJpbGl0eSBmb3Igc29tZW9uZSBlbHNlIHRvIGdhaW4gc29tZSBmb3JtIG9mIGFjY2Vzcy4gTXVjaCBob3cgYmxvY2tjaGFpbiBkYXRhYmFzZXMgd2VyZSB0byBwcmV2ZW50IGRvdWJsZS1kYXRhICZhbXA7IHVucGVybWlzc2lvbmVkLWRhdGEtY2hhbmdlcyBidXQgd2l0aCBwcm9ncmFtYWJsZSBjaGFpbnMgY2FtZSBjb250cm9sbGluZyBzY3JpcHRzICZhbXA7IGF1dG8tdHJhbnNmZXIgYXR0YWNrcyBoaWRkZW4gYXMgZnJlZS1taW50cyB3ZWJzaXRlcy4gV2hlcmUgd2UgaGFkIG9mZmxpbmUgc3RvcmFnZSB3aXRoIGNoYWlucyBtZWNoYW5pY3MgdGhhdCBhbGxvd2VkIHNlbmRpbmcgdG8gYW55dGhpbmcgZXZlbiB1bmtub3ducyBhbmQgYmVpbmcgYWJsZSB0byBqdXN0IHNlbmQgdGhlIHByb29mIG9mIG91dHB1dCBhbmQgbm90IHRoZSBvdXRwdXQgaXRzZWxmIGp1c3QgZm9yIGx1eHVyaWVzIHRvIGNvbWUgaW4gYW5kIHB1dCB1bmtub3dpbmcgdXNlcnMgaW4gZnJvbnQgb2YgZGlyZWN0IGNvbnRyb2wgb2YgdGhlaXIgb25saW5lIHdhbGxldCBzdG9yYWdlLiBXaGVuIGtub3dsZWRnZSB3YXMgdGhlIHdheSB0byB1c2UgdGhlIHNlY3VyaXR5IHdhcyBnZW5lcmFsbHkgaGlnaGVyIGFuZCBhdHRhY2tzIHdlcmUgZ2VuZXJhbGx5IGxvd2VyIGJ1dCBhcyBpdCBiZWNvbWVzIGVhc2llciB0byB1c2UsIHRoZSBtb3JlIHBlb3BsZXMgdGhhdCBjYW4gcGFydGljaXBhdGUuIFRoaXMgaXMgdGhlIHJvYWQgdG8gYXR0YWNrLCB0aGlzIGlzIHdoZXJlIHdlIHdlcmUgbGVhZCwgdGhpcyBpcyB3aGVyZSB3ZSBhcmUuPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBZb3VUdWJlIHdoaWNoIGlzIGFwYXJ0IG9mIHRoZSBHb29nbGUgdGVjaCBnaWFudCBmYW1pbHksIGlzIGF0dGFja2VkIHNvbWV0aW1lcyBtdWx0aXBsZSB0aW1lcyBwZXIgbWludXRlIGluIGEgbWFubmVyIHRoYXQgaXMgPGk+PGI+c3VjY2Vzc2Z1bDwvYj48L2k+LiBGcm9tIGhvdyB0aGVzZSBhdHRhY2tzIGFyZSBhYmxlIHRvIGhhcHBlbiBkb3duIHRvIGhvdyBzaW1wbHkgdGhlc2UgYXR0YWNrcyBhcmUgYmVpbmcgZG9uZSBzb21lIHBlb3BsZSBhcmUgYWJsZSB0byBzZWUgd2h5IHRoZXNlIGF0dGFja3MgY2Fubm90IGJlIHN0b3BwZWQhCjxicj48YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IEF0IHRoZSBtb21lbnQgTFRUIGlzIG9uZSBvZiB0aGUgYmlnZ2VzdCBzZWVuIGF0dGFja3MgZm9yIGEgWW91VHViZSBjaGFubmVsLiBUaGUgdGVhbSB3aXRoaW4gdGhlIGNvbXBhbnkgaGFzIGV4cGxhaW5lZCBzbyBtdWNoIGluZm9ybWF0aW9uIGFuZCB0YWtlbiB1cyAodGhlIGF1ZGllbmNlKSB0aHJvdWdoIHRoZSBzdGVwcyBlbm91Z2ggdGltZXMgdGhhdCBjb21wYXJpc29ucyBvZiBhdHRhY2tzIHRvIFlvdVR1YmVycyBvdmVyIHRoZSB5ZWFycyBjYW4gcmVhbGx5IGJlIHZpZXdlZCBpbiBsaWdodHMuPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBOb3JtYWxseSB3aXRoIFlvdVR1YmVyIGhhY2tzIHBlb3BsZSBleHBlY3QgdGhlIGNvbW1vbiB0cm9wZXM6IDxpPjxiPnVzZXIgZXJyb3I8L2I+LCA8Yj5lbWFpbC9waGlzaGluZy9pY2Vpbmc8L2I+LCA8Yj5jbGlwcGVkL2xvZ2dlZDwvYj4gYXR0YWNrczwvaT4uIFRoZXNlIGFyZSBhbGwgc29tZSBmb3JtIG9mIDxpPjxiPnVzZXIgZXJyb3I8L2I+PC9pPiBvciBpdCB0YWtlcyB0aGUgdXNlciB0byBjYXVzZSB0aGUgZW50cnkgZm9yIHRoZXNlIGF0dGFja3MgYW5kIHdoaWxlIHRoZSBtb3JlIG90aGVyIGF0dGFja3MgYXJlIGtub3duIG9mLCBwZW9wbGUgb3V0c2lkZSB0aGUgYXR0YWNrIHZlY3RvciByYXJlbHkgaGVhciBvZiB0aGUgaW5zaWRlIGluZm9ybWF0aW9uLiBMaW51cyBUZWNoIFRpcHMgaG93ZXZlciwgdGhleSBnYXZlIHVzIHRoaXMgaW5mb3JtYXRpb24uCjxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgQXQgdGhlIGVuZCBvZiBtYW55IFlvdVR1YmVyIGF0dGFjayB2aWRlb3MgdGhlIHBocmFzZSwgIjxpPnBsZWFzZSBiZSBraW5kPC9pPiIgaXMgdXNlZCBvZnRlbiBiZWNhdXNlIHRoZSB1c2VyIGJlbGlldmVzIHRvIGJlIGF0IGZhdWx0LiBUaGVzZSBhcmUgdHJvdWJsaW5nIGFuZCBjb25mdXNpbmcgdGltZXMsIGV2ZW4gZm9yIGEgd2VsbCB0ZWNoLWtub3dsZWRnZWQgcGVyc29uIGxpa2UgTFRUJ3MgTGludXMgPGk+aGltc2VsZjwvaT4gdGhlIHNpdHVhdGlvbiB3YXMgY29uZnVzaW5nIGFuZCBtaXNsZWFkaW5nLiBGcm9tIHRoZSBzaXR1YXRpb24gYXQgaGFuZCBleHBsYWluZWQgdmlhIExUVCdzIHN0YWZmIHdpdGhpbiB0aGVpciBvd24gbGl2ZSBzdHJlYW1zLCBjbGlwcyBhbmQgcG9zdHMgaXQgYXBwZWFycyB0aGF0IHRoZSBvbmx5IHBlb3BsZSB0aGF0IGhhbmRsZWQgdGhlIHNpdHVhdGlvbiBjYWxtbHkgYXJlIHBlb3BsZSB3aG9tIGVpdGhlciBkZWFsIG9mdGVubHkgb3IgaGF2ZSBkZWFsdCBvZnRlbiB3aXRoIGhhY2tpbmcgb3IgcXVpY2sgdGltZSBzaXR1YXRpb25zIHdpdGhpbiByZWFsLXdvcmxkIHNjZW5hcmlvcyAobGlrZSBoYWNraW5nIGV2ZW50cyBhbmQgZGVtb25zdHJhdGlvbnMpLiBUaGUgcGVvcGxlIHRoYXQgZml4IHRoZSBpc3N1ZXMgd2hlbiB0aGV5IGFyZSBsaXZlLCBkdXJpbmcgcmVjb3JkaW5ncyAmYW1wOyB0aGUgcGVvcGxlIGp1c3QgZXhwbGFpbmVkIGFsbCBzZWVtZWQgdG8gYmUgY2FsbSwga25ldyB3aGF0IHRvIGRvIG9yIGZvciBhdCBsZWFzdCAxIGVtcGxveWVlIGVuam95ZWQgdGhlIHRyaWxsIG9mIHdvcmtpbmcgYWdhaW5zdCB0aGUgaGFja2VycyB0byBnZXQgdGhpbmdzIGZpeGVkLiBUaGlzIHNob3dzIHRoYXQgaW4gc29tZSBjYXNlcyBwcmV2aW91cyBZb3VUdWJlciBoYWNrcyBtYXkgaGF2ZSBoYWQgdGhlIGV4YWN0IHNhbWUgaXNzdWUgYnV0IGJlY2F1c2UgdGhlIFlvdVR1YmVyIHdhc24ndCBhcyB0ZWNoIHVuZGVyc3RhbmRpbmcgYXMgdGhlIGVudGlyZXR5IG9mIHRoZSBMVFQgdGVhbSB0aGF0IHdvcmtlZCBvbiB0aGUgaGFjayBsaXZlLCB0aGV5IG1heSBhc3N1bWVkIGZha2UgaW5mb3JtYXRpb24gYW5kIHdpdGggbm8gb3RoZXIgaW5mb3JtYXRpb24gaGFkIHRvIHRha2UgYXMgdGhlIG1vc3QgcG9zc2libGUgdHJ1dGguCjxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgVGhlIHJlYWwgcHJvYmxlbSB0aG91IGlzIHVuZGVybHlpbmcgYW5kIHRoaXMgaXMgb25lIG9mIHRoZSBmZXcgdGltZXMgd2UgaGFkIHJlYWwgaW5zaWdodCBpbnRvIGl0IG91dHNpZGUgb2YgdGhlIFlvdVR1YmUgSW50ZXJuYWwgVGVjaG5vbG9naWVzIFRlYW0gJmFtcDsgTWFuYWdlbWVudCBmcmFtZXdvcmsuIEkgbXVzdCBzYXksIGl0J3MgYWJvdXQgdGltZSBiZWNhdXNlIHRoaXMgc2hvd3MgZmxhd3MgbWFqb3IgZmxhd3Mgbm90IG9ubHkgd2l0aCB0aGUgdGVjaCBnaWFudCBidXQgYWxzbyBvbiB0aGUgc29mdC1hbGwtd2FyZSB0ZWNobm9sb2dpZXMgR29vZ2xlLCBNaWNyb3NvZnQsIEFwcGxlIGFuZCBvdGhlciBtYWpvciB0ZWNoIGNvbXBhbmllcyBoYXZlIHNvbGQgdXMuPGJyPjxicj48aDEgYWxpZ249ImNlbnRlciIgc3R5bGU9ImFsaWduOmNlbnRlciI+PGI+IjxpPkl0J3MgYWxsIG9uIHRoZSB3aXJlITwvaT4iPC9iPjxicj48L2gxPjxoMiBhbGlnbj0icmlnaHQiIHN0eWxlPSJhbGlnbjpyaWdodDttYXJnaW4tcmlnaHQ6NSU7Ij48c3VwPjxzdWI+Jm5ic3A7ICZuYnNwOyBVbmtub3duIFRlY2ggR2lhbnQgKDE5OTMtMjAxMyk8L3N1Yj48L3N1cD48L2gyPgo8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNvZnQtYWxsLXdhcmUgaXMgZXZlcnl0aGluZyBkb25lIGJ5IHNvZnR3YXJlLiBBbGwtb24tdGhlLXdpcmUgYWthIDxxPjxpPjEtd2lyZTwvaT48L3E+IGlzIHJ1bm5pbmcgYWxsIHNlcnZpY2VzIG92ZXIgdGhlIGludGVybmV0ICZhbXA7IGNsb3VkLiBUaGUgcHJvYmxlbSB0aG91IGlzIHRoZSBjbG91ZCBpcyBqdXN0IHNvbWVvbmUgZWxzZSdzIGNvbXB1dGVyLiBUaGUgb3RoZXIgcHJvYmxlbSBpcyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgY29tcGFuaWVzIHNheWluZyB0ZWNobm9sb2d5IHdpbGwgbWFrZSBldmVyeXRoaW5nIHNhZmVyLCBmYXN0ZXIsIHN0cm9uZ2VyLCBiZXR0ZXIgaXMgYWxzbyB0aGUgc2FtZSBjb21wYW5pZXMgcHVycG9zZWx5IGNyYWZ0aW5nIGhvbGVzIGluIHRoZWlyIHN5c3RlbSB3aGlsZSBvdGhlciBwYXJ0cyBhcmUgbm93IHN0YXJ0aW5nIHRvIHNob3cgdGhleSB3ZXJlIGp1c3QgZGlnaXRhbCBwYXJsb3IgdHJpY2tzLgo8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNvZnQtYWxsLXdhcmUsIG1ha2UgaXQgYWxsIHNvZnR3YXJlIGlzbid0IGEgYmFkIHByYWN0aWNlLiBUaGlzIGFsbG93cyBmb3Igc21hbGxlciBkZXZpY2VzIHRvIGhhdmUgYmlnLWRldmljZSBmZWVsLiBDaGVhcGVyIGRldmljZXMgY2FuIGFjdCBsaWtlIHJlYWxseSBiaWcgYW5kIGV4cGVuc2l2ZSBkZXZpY2VzLiBUaGUgcHJvYmxlbSwgdG8gcGVyZm9ybSB0aGlzIHBhcmxvciB0cmljayBvZiBtYWtpbmcgYSBzbG93IHNtYWxsIGNoZWFwIGRldmljZSBmZWVsIGZhc3RlciwgYmlnZ2VyLCBhbmQgbW9yZSBleHBlbnNpdmUgaXMgdGhlIHVzZXIncyBkZXZpY2UgaGFzIHRvIHRhbGsgdG8gYW5vdGhlciBkZXZpY2UgZm9yIGV2ZXJ5dGhpbmcuIFNvIGNlcnRpZmljYXRlcyB3ZXJlIGludmVudGVkIHRvIHJlZ3VsYXRlIHRydXN0ZWQgcGFydGllcyBidXQgZXZlbnR1YWxseSB0aGUgPGI+ZDxpPmVlPC9pPnRzPC9iPiB0byBhIHRlY2ggZ2lhbnQncyBjZXJ0cyB3ZXJlIGxlYWtlZCwgdGhlbiBmcm9tIHRoYXQgb3RoZXIncyBnZXQgc3RvbGVuIHRoZW4gZXZlbnR1YWxseSB0aGUgZW50aXJlIGNlcnRpZmljYXRlIHN5c3RlbSBzaG93cyBpdCdzIGEgZmlhdCBzeXN0ZW0uIEl0IHdvcmtzIGNvbXBsZXRlbHkgb24gdHJ1c3QgaW5zdGVhZCBvZiBwcm9vZnMuIENlcnRpZmljYXRlcyBoYXZlIHByb29mcyB3aXRoIHRoZW0gdG8gcHJvdmUgdGhlIGNlcnQgaXMgYXMgaW50ZW5kZWQgYnV0IHdoZW4gdGhlIGNlcnQgaXMgYmVpbmcgdXNlZCB1bi1pbnRlbmRlZGx5IGFzIGludGVuZGVkLCB3ZWxsIHRoYXQncyB1bnN0b3BwYWJsZSBpbiBhIHRydXN0IHN5c3RlbS4gRXZlbiBpZiB0aGVyZSB3YXMgYSBibG9ja2NoYWluIG9mIGNlcnRzLCBpdCdzIGEgdHJ1c3Qgc3lzdGVtIGFuZCB0aGVyZWZvcmUgd2lsbCBhbHdheXMgYmUgYSBwYXJsb3IgdHJpY2suIE5vdGhpbmcgbW9yZSB0aGVuIGV4Y2VsIHNoZWV0IGRhdGFiYXNpbmcuPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGlzIGlzIHdoeSBJIGFtIGNhbGxpbmcgaXQgYSBwYXJsb3IgdHJpY2ssIHRoaXMgY2VydGlmaWNhdGUgc3lzdGVtIHdhcyBzb2xkIGFzIHRoZSBrZXkgdG8gYWxsb3dpbmcgc29mdC1hbGwtd2FyZSB3b3JrIHdpdGhvdXQgd29ycnkuIEluIHJlYWxpdHkgdGhleSBzaG91bGQgaGF2ZSBqdXN0IGJlZW4gaG9uZXN0IGFuZCBzYWlkLCAiPGk+Q2VydGlmaWNhdGVzIGFyZSBhIHRydXN0IG5ldHdvcmsgb2YgcGFpZCBzcG9uc29ycyB0byBiZSBhYmxlIHRvIHByb2R1Y2UgdW5pcXVlIFNIQSBwcm9vZnMgdGhhdCBjYW5ub3QgYmUgZHVwcGVkIG9ubHkgY29waWVkIGZvciBhcyBsb25nIGFzIHRoZSBTSEEgcHJpdmF0ZSBrZXlzIGFyZSBrZXB0IHNhZmUsPC9pPiIgYmVjYXVzZSB0aGVuIHdoZW4gaGFja3MgaGFwcGVuIHBlb3BsZSBtYXkgaGF2ZSBzb29uZXIgdGhvdWdodCwgY2hlY2sgY2VydHMsIGluc3RlYWQgb2YgZmluYWxseSBkaXNjb3ZlcmluZyB0aGUgZmxhdyBvbmx5IGFmdGVyIHRoZSBlbnRpcmV0eSBvZiB0aGUgc3lzdGVtIGZlbGxlZCBmcm9tIGEgR1BVIGNvbXBhbnkgaGFjayBvYnRhaW5pbmcgY29tcGFueSBDY2VydCBwcm9vZnMsIGtleXMsIGFuZCBtb3JlITxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgQmVjYXVzZSB0aGUgdGVjaCBnaWFudHMga25ldyB0aGUgZmxhdyBiZWZvcmUgaXQgd2FzIHB1YmxpYywgdGhleSBzdGFydGVkIHVzaW5nIGFuIGluZGVwZW5kZW50IGRldmVsb3BlZCBzeXN0ZW0gY2FsbGVkIHRva2VuaXphdGlvbi4gVG9rZW5pemluZyBkYXRhIHdhcyBmaXJzdCB0aG91Z2h0IGFzIGJlc3QgZm9yIGludGVybmFsIHVzZSBzeXN0ZW0gYnV0IHdoZW4gPGI+IjxpPmludGVybmFsIHVzZSBvbmx5PC9pPiI8L2I+IGJlY2FtZSA8Yj4iPGk+b3ZlciB0aGUgaW50ZXJuZXQ8L2k+IjwvYj4sIHRva2VuaXplZCBkYXRhIGJlY2FtZSB2ZXJ5IHVzZWZ1bCB2ZXJ5IHF1aWNrbHkuIEluIG1hbnkgY2FzZXMgdG9rZW5pemluZyBvbmx5IHdvcmtzIGJlY2F1c2UgdGhlIHRva2VuIGlzIGJlaW5nIGdlbmVyYXRlZCBvbiBtYWNoaW5lcyBvciBzb2Z0d2FyZSBvd25lZC9vcGVyYXRlZCBieSB0aGUgY29tcGFueSdzIHNvZnR3YXJlIHlvdSBhcmUgdXNpbmcuIEV2ZW4gT3BlcmF0aW5nIFN5c3RlbXMgKDxiPk9TPC9iPikgd2VyZSBhYmxlIHRvIGJlIHRva2VuaXplZCBhbmQgc2VudCBvdmVyIHRoZSB3aXJlLiBJbiBob25lc3R5LCB0aGlzIHdhcyBhIHJlYWwgc3RlcCB0b3dhcmQgbGVnaXRpbWl6aW5nIDxpPnNvZnQtYWxsLXdhcmU8L2k+LiBUaGlzIGlzIHN0aWxsIGZsYXdlZCBiZWNhdXNlIG5vdy1hLWRheXMgYSBtYWNoaW5lIGdpdmVzIHVwIHNvIG11Y2ggaW5mb3JtYXRpb24gbWFueSBoYWNrZXJzIChpbmNsdWRpbmcgPGk+U2NyaXB0ZXJzPC9pPiBha2EgPGk+U2NyaXB0LUtpZGRpZXM8L2k+KSBjYW4gbWltaWMgdGhlc2UgbWFjaGluZXMgdG8gdGhlbiBnYWluIGhpZ2hlciBsZXZlbHMgb2YgYXV0aG9yaXR5IGZvciB0aGUgcHJpdmlsZWdlIG9mIGFjY2Vzc2luZyBvdGhlciBtYWNoaW5lJ3MgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmUgbGluZSwgZXZlbnR1YWxseSB3b3JraW5nIGFsbCB0aGUgd2F5IHVwIHRvIGEgbWFjaGluZSB3aXRoIGVpdGhlciBoaWdoZXN0IEFQSSB0b2tlbiBhY2Nlc3Mgb3IgaGlnaGVzdCBzZWN1cml0eSBhdXRob3JpdHkgdG8gdGhlbiBtYWtlIHdoYXQgZXZlciBhdHRhY2sgdGhleSBuZWVkLiBBbHRob3VnaCB0aGlzIG1heSBzb3VuZCByZWFsbHkgY29tcGxpY2F0ZWQgYnV0IGluIHJlYWxpdHkgaXQncyBhcyBzaW1wbGUgYXMgYSBib3Qgc2VlaW5nIGJpdHMgb2YgZGF0YSB3aGlsZSBzb21lb25lIHVzZXMgYSBtYWNoaW5lIG9uIGEgbmV0d29yayB5b3UgYXJlIG9uIChkb2Vzbid0IGV2ZW4gaGF2ZSB0byBiZSB5b3UpLiBUaGF0IGJvdCBvbiB0aGUgc2FtZSBuZXR3b3JrIGFzIHlvdSBpcyBqdXN0IHNjYW5uaW5nIGFzIG11Y2ggZGF0YSBhcyBwb3NzaWJsZSBhcyBmYXN0IGFzIHBvc3NpYmxlIG9uIHRoZSBuZXR3b3JrIGFuZCB3aXRoaW4gMyBzZWNvbmRzIGNhbiB0cnkgd2l0aGluIDEgbWlsbGlvbiB0aW1lcyAoZGVwZW5kaW5nIG9uIGludGVybmFsIG5ldHdvcmsgc3BlZWRzKSB0byBhc2sgZm9yIHBlcm1pc3Npb25zLCBpbmZvcm1hdGlvbiwgYWNjZXNzLiBEZXBlbmRpbmcgb24geW91ciBzeXN0ZW0sIGl0IG1heSBqdXN0IGFsbG93IHNvbWUgY29ubmVjdGlvbiBhbmQgaW4gYWxtb3N0IGFsbCBjYXNlcyB3aWxsIGdpdmUgaW5mb3JtYXRpb24gYXQgdGhlIGxlYXN0IGxpa2Ugd2hhdCBPUywgYnJvd3NlciBpbmZvcm1hdGlvbiwgdGltZXpvbmUuIERlcGVuZGluZyBvbiB3aG9tLCBob3cgYW5kIHdoZXJlIHRoZSBxdWVzdGlvbiBpcyBjb21pbmcgZnJvbS90byB3aWxsIGRldGVybWluZSBpZiBhbmQgaG93IG11Y2ggaXMgZ2l2ZW4gb3V0LiBTbyBmb3IgZXhhbXBsZSB0aGUgY29tcGFueSBydW5uaW5nIHlvdXIgQ1BVIG9yIEdQVSBhc2tzIHlvdXIgZGV2aWNlIGZvciBpbmZvcm1hdGlvbiwgeW91ciBkZXZpY2UgaXMgZ29pbmcgdG8gZ2l2ZSBxdWl0ZSBhIGJpdCBhbmQgaWYgeW91IGhhdmUgIjxpPkF1dG9tYXRpYyBVcGRhdGVzPC9pPiIgeW91IG1heSBnaXZlIG1vcmUgaW5mb3JtYXRpb24uIFRoaXMgaXMgbm90IHRoZSByZWFzb24gd2h5IHRoZSBoYWNrZXIgZ3JvdXBzIHdlbnQgYWZ0ZXIgQ1BVLCBHUFUsIE9TICZhbXA7IGhhcmR3YXJlIG1hbnVmYWN0dXJlIGNlcnRpZmljYXRlIHByaXZhdGUgaW5mb3JtYXRpb24gYnV0IG9uY2UgdGhleSBoYWQgaXQsIHNvbWVvbmUgcXVpY2tseSBmaWd1cmVkIG91dCBob3cgaXQgd2FzIGEgZ3JlYXQgYXR0YWNrIHZlY3Rvci4gQ1BVICZhbXA7IEdQVSwgZXZlcnlvbmUgaGFzIG9uZSBvciBjaGlwcyBmcm9tIHRoZXNlIG1hbnVmYWN0dXJlcy4gSnVzdCBob3cgc21hcnRwaG9uZSBjYW1lcmEgem9vbWluZyBjaGlwIG1hbnVmYWN0dXJlcyB3ZXJlIGhpdCBzbyBib3RuZXRzIGNvdWxkIHV0aWxpemUgdGhlIG1pbGxpb25zIG9mIGNlbGxwaG9uZXMgd2l0aCB1bnNlY3VyZSBjaGlwcyBvbiB0aGUgUEMgQm9hcmQgb2YgdGhlIGNhbWVyYS4gVGhlIGF0dGFjayBkb2Vzbid0IG5lZWQgYWNjZXNzIHRvIHlvdXIgZGV2aWNlIGJlY2FzdWUgdGhlIHpvb20gY2hpcCBjYW4gYWNjZXNzIHRoZSBDUFUgb3IgYXQgbGVhc3Qgc2VuZCBmb3IgYWN0aXZhdGlvbnMgYW5kIG1vcmUuIERvZXMgeW91ciBjZWxscGhvbmUgaGF2ZSBuYXRpdmUgM0QgZWZmZWN0cyBhbmQgZmlsdGVycz8gWW91IG1heSBoYXZlIGFuIHVuc2VjdXJlIGNhbWVyYSBjaGlwLgo8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRoZSBhdHRhY2tzIGp1c3Qgc3BlYWtpbmcgYWJvdXQgYWxsIHJldm9sdmUgYXJvdW5kIDMtZmFjdG9yczogPGk+VHJ1c3QgQXV0aG9yaXR5IFN5c3RlbSwgSW50ZXJuYWwgU3lzdGVtcyBhcmUgdGhlIEF0dGFjayBMYW5kc2NhcGUsIFRydXN0IEF1dGhvcml0eSAmYW1wOyBJbnRlcm5hbCBTeXN0ZW1zIGFyZSBtb3JlIGZsYXdlZCB0aGVuIG5vbi10cnVzdCAmYW1wOyBleHRlcm5hbCBzeXN0ZW1zPC9pPi4gRWFjaCBvbmUgaGFzIHRoZSBzYW1lIHR5cGUvc3R5bGUgb2YgYXR0YWNrIHdoaWNoIG1lYW5zIGZpbmQgYSB3YXkgdG8gZXhwbG9pdC91c2Ugb25lIGFuZCB0aGUgb3RoZXJzIHByb2JhYmx5IGNhbiB1c2UgdGhlIHNhbWUgYXR0YWNrLiBUaGV5IGFsbCByZWx5IG9uIHRoZSBob3N0aW5nIGNvbXBhbnkgb2YgdGhlIG1hY2hpbmUgeW91ciBkZXZpY2VzIGFyZSBzcGVha2luZyB0by4gQXMgdGhvc2UgY29tcGFuaWVzIGJlY29tZSBiaWdnZXIsIHNvIGRvZXMgdGhlIGF0dGFjayBsYW5kc2NhcGUgYW5kIHNvIHRoZW4gdGhlIGF0dGFjayB2ZWN0b3IgcG9zc2liaWxpdGllcyBvbmx5IG1hZ25pZnkgbm90IG11bHRpcGx5LCBtYWduaWZ5IGJ5IG1hZ25pdHVkZXMgYXQgcGVyIHNxdWFyZWQgb3IgY3ViZWQgcmF0aW9zIHBlciBsZWcgdGhhdCBsYW5kc2NhcGUgaGFzIHRvIHVwaG9sZC4gTWVhbmluZyBzaW1wbGUsIGZvciBldmVyeSAxIHRoaW5nIHRoZSBpbnRlcm5hbCBzeXN0ZW1zIGhhdmUgdG8gaGFuZGxlLCB0aGUgd2F5cyB0byBhdHRhY2sgaW5jcmVhc2UgZWl0aGVyIGluIG11bHRpcGxlcyBvZiAxMCBzcXVhcmVkIG9yIG11bHRpcGxlcyBvZiAxMCBjdWJlZCBwZXIgQVBJIHRoYXQgaW50ZXJuYWwgc3lzdGVtIGhhbmRsZXMgKGluYm91bmQvb3V0Ym91bmQpLiBXZSBjYW4gYXR0ZW1wdCB0byBzdG9wIGJ1dCB3ZSBjYW5ub3QgcHJldmVudCBzbyBub3cgd2hhdCBoYXBwZW5zIHdoZW4gdGhpcyBhdHRhY2sgbGFuZHNjYXBlIGFsc28gaGFuZGxlcyBmZWF0dXJlcyBsaWtlLCAiPGk+UmV2b2tlIEFjY2VzczwvaT4iPyBFdmVuIGZvciBjcm9zcy1hdXRob3JpdHkgY29tbXVuaWNhdGlvbnMsIGlmIGl0J3Mgb3ZlciB0aGUgd2lyZSBhbmQgbm90IGRpcmVjdCBvbiBzZXJ2ZXIvbWFjaGluZSB3ZWxsIHRoYXQgY29tbXVuaWNhdGlvbiBjYW4gYmUgYmxvY2tlZC4KPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBJZiB0aGUgdXNlciBhdHRhY2tpbmcgaGFzIHRoZSBlcXVhbCBwZXJtaXNzaW9uIGxldmVscyBmcm9tIHN0b2xlbiB0b2tlbnMvY2VydHMgdGhlbiBlcXVhbGx5IGlmIHRoZSBhdHRhY2tlciB3YXMgdG8gcmV2b2tlIHlvdXIgYXV0aG9yaXR5IGZpcnN0LCB5b3UgY2FuIG5vIGxvbmdlciByZXZva2UgdGhlaXJzLiBJbiB0aGUgTFRUIGhhY2ssIGluIHNvbWUga2luZGEgZGlsdXRlZCBhdHRhY2sgKG9mdGVuIG5pbmphIGF0dGFja3MgYXJlIGRpbHV0ZWQpLCB0aGUgdG9rZW4gZm9yIGFjY2VzcyB0byBhIGNoYW5uZWwvcG9ydC9ob2xlIGZvciBoaWdoZXIgYWNjZXNzIHRvIHRoZSB1bWJyZWxsYSBjaGFubmVsIHdoaWNoIGVuZGVkIHVwIHRvIGJlIDxiPjxpPkxpbnVzVGVjaFRpcHM8L2k+PC9iPi4gVGhpcyBpcyBhIGdlbmVyaWNhbGx5IHNpbXBsZSB3YXkgdG8gZXhwbGFpbiB0aGUgYXR0YWNrLiBUaGUgYXR0YWNrZXIgd2FzIHVuYWJsZSB0byBiZSByZXZva2VkIGZyb20gTFRUJ3MgZW5kIGFuZCB0aGF0IGNvdWxkIGJlIGZyb20gYSA8aT5maXJzdC1saWdodCBzd2l0Y2g8L2k+IG9yIDxpPnRoZSBmaXJzdCBpbnZva2VkIGZ1bmN0aW9uIGluIHRoZSBhdHRhY2sgb25jZSBwbGFudGVkPC9pPi4gSWYgdGhlIGZpcnN0LWxpZ2h0IHN3aXRjaCB3YXMgdG8gcmV2b2tlIGFsbCB0b3AgYWNjZXNzIHRva2VucyBsb3dlciBvciBlcXVhbCB0byB0aGUgYXR0YWNrZXIncyB0b2tlbiB0aGVuIG9ubHkgaGlnaGVyIGF1dGhvcml0aWVzIGNhbiByZXZva2UuIFRoaXMgY2FuIGJlIHRyaWNreSBieSB0aGUgaGlnaGVyIGF1dGhvcml0eSBiZWNhdXNlIHRoZXkgc2ltcGx5IGNhbm5vdCBqdXN0IGFjdCBvciBlbHNlIHRoYXQncyBhIGRpZmZlcmVudCBhdHRhY2sgbWV0aG9kIHNvIHRoZSBhdHRhY2tzIGJldCBvbiB0aW1lIGJldHdlZW4gdXNlcnMgcmVhbGl6aW5nIHRoZXkgY2Fubm90IHN0b3AgdGhlIGF0dGFjayBhbmQgdGhlbiB0aGUgaGlnaGVyIGF1dGhvcml0eSBnZXR0aW5nIGludm9sdmVkIHRvIHRoZW4gbWFraW5nIGFuIGFjdGlvbi4gVGhlIHdheSB0aGUgYXR0YWNrIHdhcyBkZXNjcmliZWQgYnkgdGhlIExUVCB0ZWFtLCBpdCBkb2VzIGFwcGVhciBldmVyeSBwb2ludCBpbiB0aGVpciBZb3VUdWJlIEhhY2sgd2FzIHZpYSBpbnRlcm5hbCBzeXN0ZW1zIG9uY2UgdGhlIGluaXRpYWwgdG9rZW4gd2FzIHN3ZXB0Ljxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgVGhpcyBpcyB3aHksIGluIG15IG9waW5pb24sIHRoZSBiaWdnZXIgYSB0ZWNoIGNvbXBhbnkgZ2V0cyB0aGUgd29yc2UgaXQncyBzb2Z0d2FyZSBiZWNvbWVzLiBJdCdzIG5vIGRvdWJ0IFdpbmRvd3MgMy4xLCAxOTk4LCBYUCAmYW1wOyA3IGFsbCB3b3JrIGJldHRlciB0aGVuIGN1cnJlbnQgZ2VuZXJhdGlvbiB3aW5kb3dzLiBXaW5kb3dzIHZpc3RhIGhhZCBtYW55ICI8Yj4xLXdpcmU8L2I+IiBidWlsdCBpbiBhbmQgd2FzIGNvbnNpZGVyZWQgdmVyeSB0ZXJyaWJsZS4gVGhlIG92ZXIgdGhlIHdpcmUgc3lzdGVtcyBhbGwgZmFpbCBhcyB0aGUgY29tcGFueSBncm93cy4gTXlzcGFjZSBmZWxsIG91dCBvZiBmYXZvciBhcyBpdCBncmV3IGZhc3Rlci4gRmFjZWJvb2sgb25jZSBpdCBoaXQgdGhlaXIgdWx0aW1hdGUgdG9wLCBwbGF0ZWF1ZWQuCjxicj48YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IElmIHRoaXMgZG9lc24ndCB3b3JrIHdlbGwgb3IgYXMgYWR2ZXJ0aXNlZC9zb2xkLCB3aHkgdXNlIGl0PyBIaWRkZW4gcmV0dXJuIGNvbW11bmljYXRpb25zLiBBdXRvbWF0ZWQgdXBkYXRlcyB3YXMgaW52ZW50ZWQgZm9yIHNvbWVvbmUgdG8ga2VlcCBhIHNvZnR3YXJlIG9yIGdhbWUgdXBkYXRlZCBhbGwgdGhlIHRpbWUgYnkgc2Nhbm5pbmcgYW4gUlNTIGZlZWQgZm9yIG5ldyBlbnRyaWVzIHRoZW4gYXV0b21hdGljYWxseSBncmFiYmluZyBhbmQgaW5zdGFsbGluZyBuZXcgZW50cmllcyB0byBhbiB1cGRhdGUgZm9ydW0uIEFib3V0IDEwIHllYXJzIGFmdGVyIG1vc3QgbWFqb3IgY29tcGFuaWVzIGFuZCBPUydzIHdlcmUgdXRpbGl6aW5nIDxpPmF1dG9tYXRlZCB1cGRhdGVzPC9pPiwgdGhlIGF1dG9tYXRlZCB1cGRhdGVzIHRvb2sgYSB0dXJuIHRvIHdoZXJlIGluIG1hbnkgY2FzZXMgZGV2ZWxvcGVycyBkaXJlY3RseSBvbiBHaXRIdWIgd2VyZSBnaXZlbiBhY2Nlc3MgdG8gcHJvZHVjZSA8aT5hdXRvbWF0ZWQgdXBkYXRlczwvaT4gJmFtcDsgZGVsaXZlciB0aGVtIC0tZnJvbSBHaXRIdWIuIE5vdyB0aGVyZSdzIGEgbmV3IGxlZywgbm93IHRoZXJlJ3MgYSBuZXcgbGFuZHNjYXBlIHRvIHRoZSBhdHRhY2sgbm93Li4udGhlIGF0dGFjayBjYW4gYmUgdXBkYXRlZCB0byB5b3Ugb3ZlciB0aGUgPGk+MS13aXJlIDxiPmF1dG9tYXRlZCB1cGRhdGU8L2I+IHN5c3RlbTwvaT4uIFRoZSByZWFzb24gdGhpcyB3b3JrcyBpcyBiZWNhdXNlIG9mIGhpZGRlbiByZXR1cm4gY29tbXVuaWNhdGlvbnMuIEF0dGFja2VycyBjYW4gYXR0YWNrIHRoZSBoaWRkZW4gcmV0dXJuIGNvbW11bmljYXRpb25zIG9mIGEgcmVhbCBhdXRvIHVwZGF0ZSB0byB0aGVuIGhpamFjayB0aGUgbGluZSBlbnRyeSB0byBwdXNoIGEgbWFsaWNpb3VzIHVwZGF0ZS4gVGhpcyBpcyB3aHkgbWFueSBMaW51eCBhbmQgU3VwZXJVc2VycyBkb24ndCByZWx5IG9uIGF1dG8gdXBkYXRlcywgdGhleSBtYXkgZ2V0IG5vdGlmaWNhdGlvbnMgb2YgdXBkYXRlcyBhdmFpbGFibGUgYnV0IHRoZXkgZWl0aGVyIHZlcmlmeSBpdCBvciB0YWxrIHRvIHBlb3BsZSB3aXRoaW4gdGhlaXIgcGVyc29uYWwgdHJ1c3QgbmV0d29yayB0byBzZWUgaWYgYW55b25lIGVsc2UgdmVyaWZpZWQgaXQuIFNvbWUgcGVvcGxlIGp1c3Qgd2FpdCBsb25nIGVub3VnaCBmb3IgaXNzdWVzIHRvIGJlIHNwb3R0ZWQgb3Igb25seSBnZXQgc3BlY2lmaWMgdGltZS1wb2ludCB1cGRhdGVzLiBUaGlzIGlzIHNvcnRhIHNpbWlsYXIgdG8gc2FpZCBwcmV2aW91c2x5IGJ1dCBpZiBtb3JlIHBlb3BsZSBzZWxmLXZlcmlmaWVkIHRoZW4gdGhlcmUgd291bGQgYmUgbW9yZSBjcm9zcyB2ZXJpZmlhYmxlIGluZm9ybWF0aW9uIHdoaWNoIGNvdWxkIGhlbHAgc3BvdCBwcm9ibGVtcyBmYXN0ZXIgd2l0aGluIHRoZSBjb21tdW5pdHkgYnV0IHRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoYXQgdHlwZSBvZiB2ZWN0b3IuIFRydXN0LCBBdXRvLCBMdXh1cnkgKGV2ZW4gQXNzaXN0aXZlIEx1eHVyeSkgd2lsbCBhbHdheXMgYmUgYSB0eXBlIG9mIGF0dGFjayB2ZWN0b3IsIHdlIGNhbiBvbmx5IHRyeSB0byBzdG9wIGF0dGFja3Mgd2hpY2ggYnJpbmdzIHVwIHRoZSBvcmlnaW5hbCBwb2ludCwgIjxpPjxiPldoYXQgaWYgeW91IGNhbid0IHN0b3AgaXQ/PC9iPjwvaT4iIAo8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRoZSBmZWF0dXJlcyB3aXRoaW4gdGhlIGludGVybmFsIHN5c3RlbXMgY2FuIGJlIHN3aXRjaGVkIG9mZiBiZWZvcmUgeW91IGJ1dCB0aGUgYWJpbGl0eSBmb3IgdGhhdCBzeXN0ZW0gdG8gZXZlbiBjb21tdW5pY2F0ZSBpbiB0aGUgZmlyc3QgcGxhY2UgcmVxdWlyZXMgYSBmcm9tIG9mIHJldHVybiBjb21tdW5pY2F0aW9ucyBhbmQgc28gdGhlIGFiaWxpdHkgdG8gc2VuZCBoaWRkZW4gcmV0dXJuIGNvbW11bmljYXRpb25zIGlzIGFsd2F5cyBwcmVzZW50LiBUaGlzIGlzIHdoZW4gd2UgZ2V0IHRvIHRoZSBjb21tdW5pY2F0aW9ucyBzZW5kaW5nIGJhY2sgdG8gdGhlIHNlcnZlciBpcyBvbmx5IG5lZWRlZCBmcm9tIHNvbWUgYXR0YWNrIHBvaW50cywgdGhlcmUncyBvdGhlciB3YXlzIHRvIGV4cGxvaXQgdGhlIHNhbWUgd2l0aG91dCBhbnkgcmV0dXJuIGNvbW11bmljYXRpb25zIGJ1dCBqdXN0IGhhdmluZyBjZXJ0aWZpY2F0ZS90b2tlbiB0dW5uZWwvYWNjZXNzIGNvbW11bmljYXRpb25zIGlzIHN0aWxsIGV4cGxvaXRhYmxlIGluIHNpbWlsYXIgb3IgdGhlIGV4YWN0IHNhbWUgd2F5cy4gSnVzdCBhcyB0aGUgbWFqb3IgZmxhdyB3aXRoIFNvZnQtYWxsLXdhcmUsIHRoZSBtYWpvciBhdHRhY2sgdmVjdG9yIGZvciB0aGlzIGRpZ2l0YWwgbGFuZHNjYXBlIGlzIGFsc28gcmV0cm9hY3RpdmUuIEFueSB2ZWN0b3IgcG9pbnQgb24gdGhlIHNhbWUgb3IgY29ubmVjdGVkIGxhbmRzY2FwZSBpcyB0aGVuIHZhbHVhYmxlIHRvIHRoZSBvdGhlcidzIHZ1bG5lcmFiaWxpdHkuIEp1c3QgaG93IHJlZmVycmVycyBhbmQgaWZyYW1lcyBhcmUgdnVsbmVyYWJpbGl0aWVzIGJlY2F1c2UgdGhleSBiYXNpY2FsbHkgaW1wb3J0IHRoZSBjb25uZWN0ZWQgZGF0YSB0byB5b3VyIGVuZHBvaW50LCB2dWxuZXJhYmlsaXRpZXMgYW5kIGFsbCBmbGF3cy4gRXZlbiBpZiB0aGVzZSByZWZlcnJlcnMvaWZyYW1lcyBhcmUgd2l0aGluIHRoZSBzYW1lIGludGVybmFsIHN0cnVjdHVyZSwgdGhleSBhcmUgdnVsbmVyYWJsZSB0byB0aGlzIGNvbW11bmljYXRpb25zIHZlY3Rvci48YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRoZSBlbnRpcmUgY29tbXVuaWNhdGlvbiBlbmQtcG9pbnQgY2FuIGJlIG9wZW5lZCBvciBjbG9zZWQgZnJvbSB3aXRoaW4gdGhlIHN5c3RlbS4gVGhlIGludGVybmFsIHN5c3RlbXMgYXJlIGZ1bGx5IGhvbGVkIGZvciBBUElzIHNvIG5vdyBvbmNlIGVudGVyZWQgdmlhIGFueSBwb2ludCwgdGhleSBwcmV0dHkgbXVjaCBnZXQgYWNjZXNzIHRvIG1vcmUgYW5kIGdyZWF0ZXIgYXV0aG9yaXRpZXMuIFRoaXMgaXMgd2h5IGluIHRoZSBwYXN0IHRoZXJlIGhhdmUgYmVlbiB0aW1lcywganVzdCBsaWtlIExUVCwgd2hlcmUgdG8gc29sdmUgdGhlIGF0dGFjayBZb3VUdWJlL0dvb2dsZSAodW5zdXJlIHdoaWNoIGF1dGhvcml0eSBBUEkgdHJpZ2dlcmVkIHRoaXMgc29sdXRpb24gb24gdGhlIGJhY2tlbmQpIGhhZCB0byBkZWxldGUgTFRUJ3MgY2hhbm5lbC4gVGhpcyByZW1vdmVzIGFsbCBwb3NzaWJsZSBhdXRob3JpdHkgdXAgdG8gR29vZ2xlLiBBZnRlciB0aGF0IG9ubHkgR29vZ2xlIGF1dGhvcml0eSBjYW4gcHVsbCB0aGF0IGRhdGEgb3V0IG9mIGl0J3MgaGlzdG9yeSBzZXJ2ZXJzLiBJZiB0aGUgYXR0YWNrZXJzIGV2ZXIgbWFrZSBpdCB0aGF0IGZhciB1cCAod2hpY2ggdGhleSBoYXZlIGJlZm9yZSksIHRoaXMgYXR0YWNrIGNoYWluIGNhbiBnbyBvbiBsaXRlcmFsbHkgZm9yZXZlciBvciB1bnRpbCBZb3VUdWJlIGlzIHNodXRkb3duIGFuZCByZWJvb3RlZCAoYXMgdGhleSBkbyB3aXRoIGFjY291bnRzKSBmb3IgdGhhdCB3b3VsZCByZXF1aXJlIGV2ZW4gaGlnaGVyIGFjY2VzcyB3aXRoaW4gdGhlIEdvb2dsZSBhdXRob3JpdHkgY2hhaW4uIEV2ZW50dWFsbHkgeW91IGdldCB0byBhIHBvaW50IHdoZXJlIGl0J3MgcG9zc2libGUgZm9yIGFuIGF0dGFja2VyIHRvIGdhaW4gZnVsbCBjb250cm9sbGluZyBhY2Nlc3Mgb2YgZ29vZ2xlIGJlY2F1c2Ugb2YgYSB0b2tlbiBmcm9tIGEgY2hhbm5lbCB1c2VyIG9uIGEgc2lkZS1sZWcgb2YgdGhlIHNhbWUgaW50ZXJuYWwgc3lzdGVtIGFzIEdvb2dsZS4gUmVtZW1iZXIgd2hlbiBGYWNlYm9vayB3ZW50IG9mZmxpbmUgZm9yIGEgZGF5LCB0aGlzIGNvdWxkIGJlIGJpZ2dlci4KPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGVzZSBiaWcgY2xvdWQgaW5mcmFzdHJ1Y3R1cmVzIG1heSBiZSBkaXN0cmlidXRlZCBidXQgYXJlIGFsbCBjZW50cmFsaXppbmdseSBjb250cm9sbGVkIHZpYSB0aGUgY29uc2Vuc3VzIHdhbGwgYnkgc2ltcGx5IG5vdCBoYXZpbmcgYSBjb25zZW5zdXMgYmFzZWQgb24gcHJvb2ZzIGFuZCB3b3JrLiBJbnN0ZWFkIHRoZXkgYXJlIGJhc2VkIG9uIHRydXN0IGFuZCBoaWRpbmcgdGhpbmdzIHRoZSBiZXN0IHRoZSBjb3Jwb3JhdGlvbihzKSBjYW4uCjxicj4KPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGVyZSBhcmUgc29sdXRpb25zIGJ1dCB1bmZvcnR1bmF0ZWx5IGV2ZW4gdGhvc2UgYXJlIGZsYXdlZCBzdGlsbCBhdCB0aGUgbW9tZW50LlRoZSBsYXN0IDIwIHllYXJzIGhhZCBhICI8aT5KdW1wIEluIFRlY2hub2xvZ3k8L2k+IiBidXQgaW4gcmVhbGl0eSB0aGUgbWFjaGluZSBvciBoYXJkd2FyZSBoYXMgIjxpPjxiPkp1bXBlZCBJbiBUZWNobm9sb2d5PC9iPjwvaT4iIGJ1dCB0aGF0J3MgcmVhbGx5IGFib3V0IGl0LiBUaGUgdGVjaG5pY2FsIHNvZnR3YXJlICI8Yj5KdW1wPC9iPiIgd2FzIGFsbCBhIGZhw6dhZGUsIGl0IHdhcyBleGNlbCBiYXNlZCBkYXRhYmFzZSB0ZWNobmlxdWVzIGFjdGluZyBhcyByZWFsIG1hdGhlbWF0aWNhbCBvciBzY3JpcHQtd2lzZSBzb2x1dGlvbnMuIEluc3RlYWQgd2UgZ290IEFQSSB0byBzcHJlZWRzaGVldGluZy4gVGhpcyBpcyB3aHkgYmxvY2tjaGFpbiBkYXRhYmFzaW5nIGlzIGhlbHBpbmcgcmVtb3ZlIG1hbnkgYXR0YWNrIHZlY3RvcnMgYnkgcmVtb3ZpbmcgbGVncyBhbmQgc2ltcGxpZnlpbmcgb3Igc2NhbGluZy1kb3duIHRoZSBsYW5kc2NhcGUgaW4gd2hpY2ggYXR0YWNrcyBjYW4gZXZlbiBiZSBtYWRlLjxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgSWYgdGhlIExUVCBZb3VUdWJlIENoYW5uZWwgSGFjayB0YXVnaHQgcGVvcGxlIGFueXRoaW5nIGlzIHRoYXQgYWxsIG9mIHRoZSBvdmVyLXRoZS1pbnRlcm5ldCBzZWN1cml0aWVzIGFyZSBhbGwgZmHDp2FkZXMgYW5kIHdpbGwgZmFpbCwgeW91IGNhbiBlaXRoZXIga2VlcCBtb3ZpbmcgZnJvbSBmbGF3IHRvIGZsYXcganVzdCBtaXRpZ2F0aW5nIHRoZSB0aW1lIGJlZm9yZSB5b3VyIG5leHQgaGl0IG9yIHlvdSBjYW4gY2hhbmdlIHN5c3RlbXMgYW5kIGhhc2ggeW91ciBsaWZlIHdpdGggaGFzaGxpbmtzLCBoYXNoZWQtbWVzaG5ldHMsIGR5bmFtaWMtaGFzaGluZyB3ZWItYXBwbGljYXRpb25zIGZvciB2ZXJpZmlhYmxlIGRhdGEtQVBJIHN0cnVjdHVyZXMuIExldCdzIHJlbW92ZSB0cnVzdCBhbmQgdGFrZSBiYWNrIHRoZSBpbnRlcm5ldC4gVGhlIGxvbmdlciB3ZSBsZXQgY29tcGFuaWVzIHNlZSB3aGF0IHdlIGRvIHRocm91Z2ggdGhlaXIgaGlkZGVuIGNvbW11bmljYXRpb25zLCB0aGUgbW9yZSB0aG9zZSBzeXN0ZW1zIHdpbGwgYmUgaGl0IGJ5IGF0dGFja2VycywgaGFja2VycywgYm90cyBhbmQgZ292ZXJubWVudHMuIFRoaXMgaXMgd2h5LCB0aGV5IHdpbGwgZmFpbCBmb3JldmVyIHVudGlsIHRoZXkgY29tcGxldGVseSByZW1vdmUgdGhlaXIgZXllcyBmcm9tIHRoZSBkaWdpdGFsIGxhbmRzY2FwZS48L3NwYW4+PC9oND48L2xhYmVsPiZuYnNwOyA8bGFiZWw+PHNwYW4gYWxpZ249InJpZ2h0IiBzdHlsZT0icmlnaHQ6MDsiPjxoNCBzdHlsZT0ibWFyZ2luLXRvcDotMi41dnc7bWFyZ2luLWJvdHRvbTotMnZ3OyI+PHNwYW4gYWxpZ249InJpZ2h0IiBzdHlsZT0icmlnaHQ6MDsiIGlkPSJvdXRib3R0Ij4zRG91Z2xhcyAiPGI+PGk+M0Q8L2k+PC9iPiIgUGlobDwvc3Bhbj4gJm5ic3A7IEA8c3BhbiBpZD0iYXV0aG9ybmFtZSI+SUZ0ZG9DQ2dRRE5FYjNWbmJHRnpJQ0k4WWo0OGFUNHpSRHd2YVQ0OEwySStJaUJRYVdoc29DQ2dJRnNqVnpBeFZWZFVVazVTUm13MVZHMXdjazB3TlVWVVdHUk9aSG93T1ZoVFFUWlBhVUppVW10V1EwNUVTWGROYWs1a1hTQT08L3NwYW4+PC9oND4KJm5ic3A7ICZuYnNwOzxzcGFuIHN0eWxlPSJ3aWR0aDo1dnc7bWFyZ2luLXRvcDotMy41dnc7bWFyZ2luLWJvdHRvbTotMC41dnc7IiBpZD0iYWRoZXJlIiBhbGlnbj0ibGVmdCIgb25jbGljaz0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbGluaycpLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWR0ZXh0aW4nKS5zdHlsZS5kaXNwbGF5PSdub25lJzsiPjxicj48L3NwYW4+PHNwYW4gYWxpZ249ImNlbnRlciIgaWQ9ImFkaW1nIiBzdHlsZT0id2lkdGg6OTglO3JpZ2h0OjUwO2xlZnQ6NTA7aGVpZ2h0OmF1dG87IiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyI+PGEgYWxpZ249ImNlbnRlciIgaHJlZj0iIiB0YXJnZXQ9Il9ibGFuayIgOz0iIiByZWw9Im5vcmVmZXJyZXIgbm9vcGVuZXIiPjxpbWcgc3JjPSJJbWFnZSBMaW5rIiBzdHlsZT0id2lkdGg6OTglOyBhbGlnbjpjZW50ZXI7IiBhbGlnbj0iY2VudGVyIj48L2E+PC9zcGFuPgombmJzcDs8bGFiZWw+PGhyIHN0eWxlPSJtYXJnaW4tdG9wOjAuNXZ3O21hcmdpbi1ib3R0b206LTAuNzV2dzsiPjxoMyBhbGlnbj0iY2VudGVyIj48c3BhbiBpZD0icHJlbmFtZSI+PHN1Yj5JZiB5b3UgbGlrZWQgdGhpcyBQdnRQcHIgcGxlYXNlIGNvbnNpZGVyIGRvbmF0aW5nIHRvIHRoZSBhdXRob3IsIDNEb3VnbGFzICI8Yj48aT4zRDwvaT48L2I+IiBQaWhsLCBieSB1c2luZyB0aGUgY3J5cHRvLWFkZHJlc3Mgb3IgQ29pbnRyZWUgbGluayBiZWxvdy4gJm5ic3A7IFRoYW5rIHlvdS48L3N1Yj48YnI+PGJyPjwvc3Bhbj48c3ViPjxzcGFuIGFsaWduPSJsZWZ0Ij48Yj48aT48c3BhbiBpZD0iYnRjYWRkeSI+V0FYUDovLzNELk5pbmphPC9zcGFuPjwvaT48L2I+PC9zcGFuPiAmbmJzcDsgPGI+PHNwYW4gYWxpZ249InJpZ2h0Ij48aT48c3BhbiBpZD0ibHRjYWRkeSI+PGEgaHJlZj0iaHR0cHM6Ly9jb2ludHIuZWUvM0RfIiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmRhcmtncmVlbjsiPjNEXydzIENvaW50ci5lZTwvYT48L3NwYW4+PC9pPjwvc3Bhbj48L2I+PC9zdWI+PC9oMz48aDQgaWQ9InR1YmVhaXIiIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PHN1cD5QdnRQcHJzIGNhbiBiZSBtb25ldGl6ZWQgYnkgQml0dHViZSBBaXJ0aW1lICZhbXA7IHRvIGhlbHAgdGhlIGF1dGhvciBnaWFuICQ8aT5UVUJFUzwvaT4gZnJvbSB5b3UgcmVhZGluZyB0aGlzIHBhcGVyLCBwbGVhc2UgdXNlIG9yIGluc3RhbGwgdGhlIDxzcGFuIG9uY2xpY2s9IndpbmRvdy5vcGVuKCdodHRwczovL2Nocm9tZS5nb29nbGUuY29tL3dlYnN0b3JlL2RldGFpbC9iaXR0dWJlLWFpcnRpbWUtZG9uYXRpb25zL2Nub2diYm1jaWZmcGlibWtwaG9ocGViZ2htb21hZW1pJykiIHN0eWxlPSJjb2xvcjpncmVlbjsiPkJpdHR1YmUgQWlydGltZSBFeHRlbnNpb248L3NwYW4+IG9yIHVzZSB0aGUgPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIiBvbmNsaWNrPSJ3aW5kb3cub3BlbignaHR0cHM6Ly9iaXR0dWJlLmFwcCcpIj5CaXR0dWJlIEJyb3dzZXI8L3NwYW4+Ljwvc3VwPjwvaDQ+PC9sYWJlbD4KJm5ic3A7PGRpdiBhbGlnbj0iY2VudGVyIj48bGFiZWw+PGg1IHN0eWxlPSJtYXJnaW4tdG9wOi0ydnc7Ij48c3BhbiBzdHlsZT0ibGVmdDowOyBtYXJnaW4tcmlnaHQ6Mi41dnc7bWFyZ2luLWxlZnQ6LTEuNXZ3OyIgYWxpZ249ImxlZnQiPk1hZGUmbmJzcDt3aXRoJm5ic3A7PHNwYW4gaWQ9IkRGQ2FiaW5ldCIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lOyI+PGEgaHJlZj0iaHR0cHM6Ly9QdnRQcHIuYXBwL1dyaXRlIiB0YXJnZXQ9Il9ibGFuayI+UHZ0UHByJm5ic3A7R2VuZXJhdG9yJm5ic3A7TGl0ZTwvYT48L3NwYW4+PHN1cD48c3VwIGlkPSJ5ZWFyMSI+MjAyMzwvc3VwPjwvc3VwPjwvc3Bhbj4gPHNwYW4gaWQ9InByZXYiIHN0eWxlPSJtYXJnaW4tdG9wOi0xLjVweDttYXJnaW4tYm90dG9tOjEuNXB4OyBtYXJnaW4tbGVmdDoyLjV2dzsgcmlnaHQ6MDsgbWFyZ2luLXJpZ2h0Oi0xLjV2dztib3JkZXItcmFkaXVzOjE1JTtwYWRkaW5nOjNweDsiIGFsaWduPSJyaWdodCI+PGEgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMQ2t6VFhlMEJFcHhleXNFYzNnNVg2a0xoZlFYWTdMVTUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiIHN0eWxlPSJib3JkZXI6IDAuMDF2dyBzb2xpZCBkYXJrZ3JlZW47IGJhY2tncm91bmQtY29sb3I6bGltZWdyZWVuOyBjb2xvcjpibGFjazsgYm94LXNoYWRvdzpkaW1ncmV5IDNweCA2cHggOXB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsiPlByZXZpb3VzJm5ic3A7UGFwZXI8L2E+PC9zcGFuPjwvaDU+PC9sYWJlbD48c3BhbiBzdHlsZT0iYm94LXNoYWRvdzpkaW1ncmV5IDNweCA2cHggOXB4O2xlZnQ6MDsiIGFsaWduPSJsZWZ0IiBpZD0iY2VydGFibGUiPjxhIGhyZWY9Imh0dHBzOi8vcHZ0cHByLmFwcC9jZXJ0cyIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrO2NvbG9yOndoaXRlOyI+R2V0Jm5ic3A7YSZuYnNwO0NlcnRhYmxlPC9hPjwvc3Bhbj48L2Rpdj4KJm5ic3A7PGhyPjxzcGFuIGlkPSJxcmltZyIgY2xhc3M9InFyaW1nIiBhbGlnbj0icmlnaHQiIHN0eWxlPSJyaWdodDowO21hcmdpbi1sZWZ0OjUwJTsiPjxpbWcgY2xhc3M9InFyaW1nIiBzcmM9Imh0dHBzOi8venhpbmcub3JnL3cvY2hhcnQ/Y2h0PXFyJmFtcDtjaHM9MTE1eDExNSZhbXA7Y2hsZD1IfDEmYW1wO2Nob2U9VVRGLTgmYW1wO2NobD1odHRwczovL3R3aXR0ZXIuY29tL1owTThJM0QiIGFsaWduPSJyaWdodCI+PC9zcGFuPjxzcGFuIHN0eWxlPSJvcGFjaXR5OjAuNTM7Y29sb3I6Z3JleTsiIGFsaWduPSJsZWZ0Ij4mbmJzcDsKJm5ic3A7PGJyPjxzcGFuIG9uY2xpY2s9ImFsYWxlcnQoKSI+UHZ0UHByLiAyMDE4LTxzcGFuIGlkPSJ5ZWFyMiI+MjAyMzwvc3Bhbj4gPGJyPiBQcml2YXRlIFBhcGVyIDIwMTgtPHNwYW4gaWQ9InllYXIzIj4yMDIzPC9zcGFuPjwvc3Bhbj4gPGJyPgo8c3BhbiBpZD0iZm9vdGVuIiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdHNwJykuc3R5bGUuZGlzcGxheT0nYmxvY2snOyI+QSBUaG91Z2h0IENoaWxkIG9mIHRoZSAzIEpva2Vyczwvc3Bhbj4KPHNwYW4gaWQ9ImZvb3RzcCIgb25jbGljaz0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvb3RjaCcpLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPlVuIHBlbnNhbWllbnRvIGhpam8gZGUgbG9zIDMgY29tb2RpbmVzPC9zcGFuPgo8c3BhbiBpZD0iZm9vdGNoIiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdGpwJykuc3R5bGUuZGlzcGxheT0nYmxvY2snOyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+5LiJ5Liq5bCP5LiR55qE5oCd5oOz5a2p5a2QPC9zcGFuPgo8c3BhbiBpZD0iZm9vdGpwIiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdHJ1Jykuc3R5bGUuZGlzcGxheT0nYmxvY2snOyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+M+S6uuOBruOCuOODp+ODvOOCq+ODvOOBruaAneiAg+OBruWtkDwvc3Bhbj4KPHNwYW4gaWQ9ImZvb3RydSIgb25jbGljaz0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvb3RzdycpLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPtCc0YvRgdC70LXQvdC90L7QtSDQlNC40YLRjyAzINCU0LbQvtC60LXRgNC+0LI8L3NwYW4+CjxzcGFuIGlkPSJmb290c3ciIG9uY2xpY2s9InRoaXMuc3R5bGUuZGlzcGxheT0nbm9uZSc7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb290ZHUnKS5zdHlsZS5kaXNwbGF5PSdibG9jayc7IiBzdHlsZT0iZGlzcGxheTpub25lIj5FdHQgdMOkbmt0IGJhcm4gYXYgZGUgMyBqb2thcm5hPC9zcGFuPgo8c3BhbiBpZD0iZm9vdGR1IiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdGVuJykuc3R5bGUuZGlzcGxheT0nYmxvY2snOyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+RWluIEdlZGFua2Vua2luZCBkZXIgMyBKb2tlcjwvc3Bhbj4KPC9zcGFuPjxicj48cCBhbGlnbj0iY2VudGVyIj48L3A+PHAgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6YmxhY2s7Y29sb3I6c2lsdmVyO2JveC1zaGFkb3c6ZGltZ3JleSAzcHggNnB4IDlweDt0ZXh0LWFsaWduOmxlZnQ7bGVmdDowO3dpZHRoOmF1dG87YnJlYWstd29yZDprZWVwLWFsbDsiIGFsaWduPSJsZWZ0IiByZWw9Im5vcmVmZXJyZXIgbm9vcGVuZXIiIHRhcmdldD0iX3NlbGYiIG9uY2xpY2s9IndpbmRvdy5vcGVuKCdodHRwczovL1B2dFBwci5hcHAvTmV3c2NoYWluJyk7Ij5SZWFkJm5ic3A7dGhlJm5ic3A7T2ZmaWNpYWwmbmJzcDtQdnRQcHImbmJzcDs8Yj48aT5OZXdzY2hhaW48L2k+PC9iPjwvcD48cCBvbmNsaWNrPSJBbGVydENoZWNrKCk7IiBpZD0iTGlua0NvdmVyIiBzdHlsZT0iY29sb3I6c2lsdmVyO3dvcmQtYnJlYWs6a2VlcC1hbGw7d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7bWFyZ2luLXRvcDotMnZ3O3RleHQtYWxpZ246cmlnaHQ7YmFja2dyb3VuZC1jb2xvcjpibGFjaztib3gtc2hhZG93OmRpbWdyZXkgM3B4IDZweCA5cHg7Ij4zRDombmJzcDs8Yj4jPGk+MTUzMTdmZXV3Z3M4am88L2k+PC9iPjwvcD48cD48L3A+PGhyPjxicj48YnI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+CjxzY3JpcHQ+wqAKCgrCoCDCoCAvLyBBZGRlZCBldmVudCBsaXN0ZW5lciB0byB0aGUgc2Nyb2xswqAKwqAgwqAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcswqAKwqAgwqAgwqAgwqAgwqAgwqAgbW92ZVNjcm9sbEluZGljYXRvcik7wqAKCgrCoCDCoCAvLyBHZXR0aW5nIHNjcm9sbEluZGljYXRvciBlbGVtZW50IGJ5IElEwqAKwqAgwqAgY29uc3Qgc2Nyb2xsSW5kaWNhdG9yRWx0ID3CoMKgCsKgIMKgIMKgIMKgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxJbmRpY2F0b3InKTvCoAoKCsKgIMKgIC8vIEhlaWdodCBvZiBlbnRpcmUgd2ViIHBhZ2UgLSBoZWlnaHTCoArCoCDCoCAvLyBvZiB2aWV3YWJsZSBwb3J0aW9uIG9mIGJyb3dzZXLCoArCoCDCoCBjb25zdCBtYXhIZWlnaHQgPcKgwqAKwqAgwqAgwqAgwqAgd2luZG93LmRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0wqDCoArCoCDCoCDCoCDCoCAtIHdpbmRvdy5pbm5lckhlaWdodDvCoAoKCsKgIMKgIGZ1bmN0aW9uIG1vdmVTY3JvbGxJbmRpY2F0b3IoZSkge8KgCgoKwqAgwqAgwqAgwqAgLy8gQ2FsY3VsYXRpbmcgd2lkdGggb2YgdGhlwqDCoArCoCDCoCDCoCDCoCAvLyBzY3JvbGxJbmRpY2F0b3IgZWxlbWVudMKgCsKgIMKgIMKgIMKgIGNvbnN0IHBlcmNlbnRhZ2UgPcKgwqAKwqAgwqAgwqAgwqAgwqAgwqAgKCh3aW5kb3cuc2Nyb2xsWSkgLyBtYXhIZWlnaHQpICogMTAwO8KgCgoKwqAgwqAgwqAgwqAgLy8gUGl4ZWxzIHNjcm9sbGVkIGJ5IHRoZSB1c2VywqDCoArCoCDCoCDCoCDCoCAvLyB0byB0b3RhbCBzY3JvbGxhYmxlIFBpeGVsc8KgCsKgIMKgIMKgIMKgIHNjcm9sbEluZGljYXRvckVsdC5zdHlsZS53aWR0aMKgCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPSBwZXJjZW50YWdlICsgJyUnO8KgCsKgIMKgIH3CoAo8L3NjcmlwdD4mbmJzcDsKPHNjcmlwdD4KwqAKwqBmdW5jdGlvbiBhbGFsZXJ0KCl7CsKgIGFsZXJ0KCdIZWxsbyAmIFdlbGNvbWUgdG8gdGhlIHRoaXMgUHZ0UHByIFtwcsSrdml0IHDEgXDJmXJdLlxuXG5QdnRQcHIgaXMgYnJvdWdodCB0byB5b3UgYnkgM0csIDNEICYgRS1ULlxuXG5UaGlzIGlzIGhvYXN0ZWQgYnkgZXhwZXJpbWVudGFsIHRlY2hub2xvZ3kgaW4gaGFzaGxpbmtzIHRvIHN0b3JlIGFsbCBvZiB0aGUgY29kZSArIHRleHQgZGlyZWN0bHkgaW50byB0aGUgbGluay5cblxuU2VydmVycy9Ob2RlcyBhcmUgdXNlZCBmb3IgZGVjcnl0aW5nIHRoZSBoYXNobGluayBmb3IgdGhlIGJyb3dzZXIgdG8gZGlzcGxheSB0aGUgaW50ZXJuYWwgaW5mb3JtYXRpb24gYnV0IHRoZXkgY2FuIGJlIGRlY3J5cHRlZCB3aXRob3V0IHNlcnZlcnMuXG5cblxuVGhhbmsgeW91LlxuwqAgwqAgwqBbTFMwelJBOjpKQU4xNjIwMjBdXG5cbsKgIMKgIMKgTGFzdCBVcGRhdGUgW0FQUjA3MjAyMjo6TFMwelJBXScpOwrCoH0KwqBmdW5jdGlvbiBBbGVydENoZWNrKCkgewrCoCBhbGVydCgiWW91IGNsaWNrZWQgb24gYW4gZWFzdGVyIGVnZy5cblxuVGhpcyBQdnRQcHIgd2FzIG1hZGUgd2l0aCB0aGUgUHZ0UHByIEdlbmVyYXRvciAoUFBHZW4pLiBUaGlzIGlzIGEgbmV3c3BhcGVyIHN5c3RlbSB3aXRoIGV2ZXJ5b25lIGluIG1pbmQuIEFueW9uZSBjYW4gdXNlIG91ciBnZW5lcmF0b3JzIHRvIGJ1aWxkIHRoZWlyIG93biBwcml2YXRlIHBhcGVyIChQdnRQcHIpIHdpdGggYWxsIHRoZSBkYXRhIHN0b3JlZCBpbiB0aGUgbGluayBpbnN0ZWFkIG9mIGEgc2VydmVyLlxuXG5cblxuVGhhbmsgWW91XG7CoCDCoCDCoFtMUzB6UkE6OkZFQjE4MjAyMF1cblxuwqAgwqAgwqBMYXN0IFVwZGF0ZSBbQVBSMDcyMDIyOjpMUzB6UkFdIik7CsKgfQrCoAo8L3NjcmlwdD4KPG1ldGEgbmFtZT0iYWlydGltZS1wbGF0Zm9ybS1kaXNwbGF5IiBjb250ZW50PSIiPjxtZXRhIG5hbWU9ImFpcnRpbWUtcGxhdGZvcm0taWQiIGNvbnRlbnQ9IiI+PHNjcmlwdCBzcmM9Imh0dHBzOi8vYml0dHViZWFwcC5jb20vdHViZXBheS9haXJ0aW1lLmxvYWRlci5qcyIgZGF0YS12ZXJpZnk9Im1ldGEiIGRhdGEtYXV0b3N0YXJ0PSJ0cnVlIj48L3NjcmlwdD48L2E+
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
52.222.214.88 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
server-52-222-214-88.fra56.r.cloudfront.net
Software
/
Resource Hash
398ba687722c5a26c7a310bae9344c67626899d84c32cc7e457058beb1782c3c

Request headers

accept-language
se-SE,se;q=0.9
Referer
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.146 Safari/537.36

Response headers

date
Tue, 04 Apr 2023 15:55:11 GMT
via
1.1 d9523e44e96d2539081596bb1d268d44.cloudfront.net (CloudFront)
x-amz-cf-pop
FRA56-P3
age
5085
x-cache
Hit from cloudfront
alt-svc
h3=":443"; ma=86400
content-length
321712
x-request-id
f5de4ae8-fcee-4edc-9e63-05ac56a1da74
etag
W/"4e8b0-WLdYdqgqXozI6HyUhWsr1jeOpf0"
vary
Accept
content-type
image/webp
access-control-allow-origin
*
cache-control
public, s-maxage=15552000, max-age=15552000, must-revalidate
x-server
ImageKit.io
timing-allow-origin
*
x-amz-cf-id
okeuWoeQFxav60SlKdzTTRL9Q_xLmmeyG9UMXHNEKq2ONC7jmne-pw==
chart
zxing.org/w/ Frame 977F
0
48 B
Image
General
Full URL
https://zxing.org/w/chart?cht=qr&chs=115x115&chld=H|1&choe=UTF-8&chl=https://twitter.com/Z0M8I3D
Requested by
Host: text
URL: data:text/html;charset=utf-8;base64,PG1ldGEgY2hhcnNldD0idXRmLTgiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPjxiYXNlIHRhcmdldD0iX3RvcCI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj5ib2R5e21hcmdpbjowIGF1dG87cGFkZGluZzoxMnZtaW4gMTB2bWluO21heC13aWR0aDozNWVtO2xpbmUtaGVpZ2h0OjEuNWVtO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LHNhbnMtc2VyaWY7d29yZC13cmFwOmJyZWFrLXdvcmQ7fUBtZWRpYShwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayl7Ym9keXtjb2xvcjp3aGl0ZTtiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrO319PC9zdHlsZT4gPGEgdGFyZ2V0PSJfdG9wIiBpZD0ibGluayIgbmFtZT0ibGluayIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDsiPjxkaXYgaWQ9ImljaGVjayIgc3R5bGU9Im1hcmdpbi10b3A6LTd2dzsiPgoKCiZuYnNwOzxzdHlsZT4gLmxpbmUge2JhY2tncm91bmQ6IGJsYWNrO29wYWNpdHk6IDAuNTtoZWlnaHQ6IDQuNXB4Oy13ZWJraXQtYm94LXNoYWRvdzogMnB4IC0ycHggM3B4IGRpbWdyZXk7Ym94LXNoYWRvdzogMnB4IC0ycHggM3B4IGRpbWdyZXk7d2lkdGg6IDAlO3Bvc2l0aW9uOiBmaXhlZDtib3R0b206IDA7bGVmdDowO2FsaWduOmNlbnRlcjt6LWluZGV4Ojg7fcKgIMKgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogOS45aW4pIHsgLnFyaW1nIHthbGlnbjogcmlnaHQ7cmlnaHQ6MDttYXJnaW4tcmlnaHQ6LTMuNSU7bWFyZ2luLWJvdHRvbTotNTAlO3BhZGRpbmctcmlnaHQ6LTEuNSU7d2lkdGg6MzAlO30gLnRvcGJhciB7bWFyZ2luLXRvcDotM3Z3O21hcmdpbi1sZWZ0Oi0zdnc7bWFyZ2luLXJpZ2h0Oi0zdnc7fSAubGluZSB7bWFyZ2luLWxlZnQ6MC41JTthbGlnbjpjZW50ZXI7bGVmdDowO319IEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwaW4pIHsgLnFyaW1nIHthbGlnbjogcmlnaHQ7bWFyZ2luLWJvdHRvbTotNTAlO3dpZHRoOjIwJTt9LmxpbmUge21hcmdpbi1sZWZ0OjAlO2FsaWduOmNlbnRlcjtsZWZ0OjA7fX3CoCA8L3N0eWxlPiZuYnNwOyA8ZGl2IGNsYXNzPSJsaW5lIiBpZD0ic2Nyb2xsSW5kaWNhdG9yIj48L2Rpdj48L2Rpdj48c2NyaXB0IHNyYz0iaHR0cHM6Ly91bnBrZy5jb20vZW1iZWRkYWJsZS1uZnRzL2Rpc3QvbmZ0LWNhcmQubWluLmpzIj48L3NjcmlwdD48ZGl2IGlkPSJiYWNrZ3JvdW5kIiBzdHlsZT0ibWFyZ2luLWJvdHRvbTotMTV2dzsiPjxsYWJlbD48aDEgc3R5bGU9Im1hcmdpbi1ib3R0b206LTJ2dzsiPjxzcGFuIHN0eWxlPSJsZWZ0OjA7IiBhbGlnbj0ibGVmdCIgaWQ9Im91dHRvcCI+V2hhdCBTaG91bGQgQmUgTGVhcm5lZCBmcm9tIHRoZSBMVFQgSGFjazwvc3Bhbj48L2gxPjwvbGFiZWw+Jm5ic3A7IDxsYWJlbD48aDQgYWxpZ249InJpZ2h0IiBzdHlsZT0icmlnaHQ6MDsiPjxzcGFuIGFsaWduPSJyaWdodCIgc3R5bGU9InJpZ2h0OjA7IiBpZD0ib3V0bWlkIj4jTFRUICNMVFRoYWNrICNIYWNrICNMVFRoYWNrMjM8L3NwYW4+PGhyIHN0eWxlPSJtYXJnaW4tYm90dG9tOi0zdnc7Ij48L2g0PjwvbGFiZWw+CiZuYnNwOyAmbmJzcDs8c3BhbiBhbGlnbj0iY2VudGVyIiBpZD0iaW1nMSIgc3R5bGU9IndpZHRoOjk2dnc7cmlnaHQ6NTA7bGVmdDo1MDtoZWlnaHQ6YXV0bzsiPjxpbWcgc3JjPSJodHRwczovL2ltYWdlcy5uaWdodGNhZmUuc3R1ZGlvL2pvYnMvcFo3VmRIcldEWFdSbVVrZmhoT08vcFo3VmRIcldEWFdSbVVrZmhoT08tLTMtLW01ZjhrXzZ4LmpwZyIgc3R5bGU9IndpZHRoOjk5JTsiIGFsaWduPSJjZW50ZXIiPjwvc3Bhbj4KPGxhYmVsPjxoNCBzdHlsZT0iZm9udC13ZWlnaHQ6bm9ybWFsOyI+PHNwYW4gaWQ9Im91dG91dCIgc3R5bGU9ImZvbnQtd2VpZ2h0Om5vcm1hbDsiPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBNYWpvciB0ZWNoIGNvbXBhbmllcyB3ZW50IGZyb20gaGVscGluZyB0aGUgc29jaWV0eSBhcm91bmQgdGhlbSB0byB0YWtpbmcgZnJvbSB0aGUgc29jaWV0eSBhcm91bmQgdGhlbSB0byBub3cgY29udHJvbGxpbmcgdGhlIHNvY2lldHkgYXJvdW5kIHRoZW0uIFRoZSA8aT5UZWNoIEdpYW50czwvaT4gcGxhbnRlZCB0aGVpciBmZWV0IGluIHRoZSBkaXJ0IGJ5IGhlbHBpbmcgdXMsIHRoZW4gdGhleSBnYXZlIHVzIGhvcGVzIG9mIHNlY3VyaXR5ICZhbXA7IHNhZmV0eSBvbmx5IHRvIHR1cm4gYW5kIGN1dCBob2xlcyBpbnRvIHRoZWlyIHN5c3RlbXMganVzdCB0byBsZXQgdGhlIGdvdmVybm1lbnRzIGluLiBUaGUgcHJvYmxlbSB3aXRoIGhvbGVzIGlzIHlvdSBjYW4ndCBwaWNrIGFuZCBjaG9vc2Ugd2hhdCBnb2VzIHRocm91Z2ggdGhlbS4KPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBIYXZpbmcgYmFja2Rvb3JzIGV2ZW4gZm9yIHlvdXIgb3duIHRlYW0sIHBlb3BsZXMsIHN5c3RlbXMsIGV0YyBnaXZlcyB0aGUgYWJpbGl0eSBmb3Igc29tZW9uZSBlbHNlIHRvIGdhaW4gc29tZSBmb3JtIG9mIGFjY2Vzcy4gTXVjaCBob3cgYmxvY2tjaGFpbiBkYXRhYmFzZXMgd2VyZSB0byBwcmV2ZW50IGRvdWJsZS1kYXRhICZhbXA7IHVucGVybWlzc2lvbmVkLWRhdGEtY2hhbmdlcyBidXQgd2l0aCBwcm9ncmFtYWJsZSBjaGFpbnMgY2FtZSBjb250cm9sbGluZyBzY3JpcHRzICZhbXA7IGF1dG8tdHJhbnNmZXIgYXR0YWNrcyBoaWRkZW4gYXMgZnJlZS1taW50cyB3ZWJzaXRlcy4gV2hlcmUgd2UgaGFkIG9mZmxpbmUgc3RvcmFnZSB3aXRoIGNoYWlucyBtZWNoYW5pY3MgdGhhdCBhbGxvd2VkIHNlbmRpbmcgdG8gYW55dGhpbmcgZXZlbiB1bmtub3ducyBhbmQgYmVpbmcgYWJsZSB0byBqdXN0IHNlbmQgdGhlIHByb29mIG9mIG91dHB1dCBhbmQgbm90IHRoZSBvdXRwdXQgaXRzZWxmIGp1c3QgZm9yIGx1eHVyaWVzIHRvIGNvbWUgaW4gYW5kIHB1dCB1bmtub3dpbmcgdXNlcnMgaW4gZnJvbnQgb2YgZGlyZWN0IGNvbnRyb2wgb2YgdGhlaXIgb25saW5lIHdhbGxldCBzdG9yYWdlLiBXaGVuIGtub3dsZWRnZSB3YXMgdGhlIHdheSB0byB1c2UgdGhlIHNlY3VyaXR5IHdhcyBnZW5lcmFsbHkgaGlnaGVyIGFuZCBhdHRhY2tzIHdlcmUgZ2VuZXJhbGx5IGxvd2VyIGJ1dCBhcyBpdCBiZWNvbWVzIGVhc2llciB0byB1c2UsIHRoZSBtb3JlIHBlb3BsZXMgdGhhdCBjYW4gcGFydGljaXBhdGUuIFRoaXMgaXMgdGhlIHJvYWQgdG8gYXR0YWNrLCB0aGlzIGlzIHdoZXJlIHdlIHdlcmUgbGVhZCwgdGhpcyBpcyB3aGVyZSB3ZSBhcmUuPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBZb3VUdWJlIHdoaWNoIGlzIGFwYXJ0IG9mIHRoZSBHb29nbGUgdGVjaCBnaWFudCBmYW1pbHksIGlzIGF0dGFja2VkIHNvbWV0aW1lcyBtdWx0aXBsZSB0aW1lcyBwZXIgbWludXRlIGluIGEgbWFubmVyIHRoYXQgaXMgPGk+PGI+c3VjY2Vzc2Z1bDwvYj48L2k+LiBGcm9tIGhvdyB0aGVzZSBhdHRhY2tzIGFyZSBhYmxlIHRvIGhhcHBlbiBkb3duIHRvIGhvdyBzaW1wbHkgdGhlc2UgYXR0YWNrcyBhcmUgYmVpbmcgZG9uZSBzb21lIHBlb3BsZSBhcmUgYWJsZSB0byBzZWUgd2h5IHRoZXNlIGF0dGFja3MgY2Fubm90IGJlIHN0b3BwZWQhCjxicj48YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IEF0IHRoZSBtb21lbnQgTFRUIGlzIG9uZSBvZiB0aGUgYmlnZ2VzdCBzZWVuIGF0dGFja3MgZm9yIGEgWW91VHViZSBjaGFubmVsLiBUaGUgdGVhbSB3aXRoaW4gdGhlIGNvbXBhbnkgaGFzIGV4cGxhaW5lZCBzbyBtdWNoIGluZm9ybWF0aW9uIGFuZCB0YWtlbiB1cyAodGhlIGF1ZGllbmNlKSB0aHJvdWdoIHRoZSBzdGVwcyBlbm91Z2ggdGltZXMgdGhhdCBjb21wYXJpc29ucyBvZiBhdHRhY2tzIHRvIFlvdVR1YmVycyBvdmVyIHRoZSB5ZWFycyBjYW4gcmVhbGx5IGJlIHZpZXdlZCBpbiBsaWdodHMuPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBOb3JtYWxseSB3aXRoIFlvdVR1YmVyIGhhY2tzIHBlb3BsZSBleHBlY3QgdGhlIGNvbW1vbiB0cm9wZXM6IDxpPjxiPnVzZXIgZXJyb3I8L2I+LCA8Yj5lbWFpbC9waGlzaGluZy9pY2Vpbmc8L2I+LCA8Yj5jbGlwcGVkL2xvZ2dlZDwvYj4gYXR0YWNrczwvaT4uIFRoZXNlIGFyZSBhbGwgc29tZSBmb3JtIG9mIDxpPjxiPnVzZXIgZXJyb3I8L2I+PC9pPiBvciBpdCB0YWtlcyB0aGUgdXNlciB0byBjYXVzZSB0aGUgZW50cnkgZm9yIHRoZXNlIGF0dGFja3MgYW5kIHdoaWxlIHRoZSBtb3JlIG90aGVyIGF0dGFja3MgYXJlIGtub3duIG9mLCBwZW9wbGUgb3V0c2lkZSB0aGUgYXR0YWNrIHZlY3RvciByYXJlbHkgaGVhciBvZiB0aGUgaW5zaWRlIGluZm9ybWF0aW9uLiBMaW51cyBUZWNoIFRpcHMgaG93ZXZlciwgdGhleSBnYXZlIHVzIHRoaXMgaW5mb3JtYXRpb24uCjxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgQXQgdGhlIGVuZCBvZiBtYW55IFlvdVR1YmVyIGF0dGFjayB2aWRlb3MgdGhlIHBocmFzZSwgIjxpPnBsZWFzZSBiZSBraW5kPC9pPiIgaXMgdXNlZCBvZnRlbiBiZWNhdXNlIHRoZSB1c2VyIGJlbGlldmVzIHRvIGJlIGF0IGZhdWx0LiBUaGVzZSBhcmUgdHJvdWJsaW5nIGFuZCBjb25mdXNpbmcgdGltZXMsIGV2ZW4gZm9yIGEgd2VsbCB0ZWNoLWtub3dsZWRnZWQgcGVyc29uIGxpa2UgTFRUJ3MgTGludXMgPGk+aGltc2VsZjwvaT4gdGhlIHNpdHVhdGlvbiB3YXMgY29uZnVzaW5nIGFuZCBtaXNsZWFkaW5nLiBGcm9tIHRoZSBzaXR1YXRpb24gYXQgaGFuZCBleHBsYWluZWQgdmlhIExUVCdzIHN0YWZmIHdpdGhpbiB0aGVpciBvd24gbGl2ZSBzdHJlYW1zLCBjbGlwcyBhbmQgcG9zdHMgaXQgYXBwZWFycyB0aGF0IHRoZSBvbmx5IHBlb3BsZSB0aGF0IGhhbmRsZWQgdGhlIHNpdHVhdGlvbiBjYWxtbHkgYXJlIHBlb3BsZSB3aG9tIGVpdGhlciBkZWFsIG9mdGVubHkgb3IgaGF2ZSBkZWFsdCBvZnRlbiB3aXRoIGhhY2tpbmcgb3IgcXVpY2sgdGltZSBzaXR1YXRpb25zIHdpdGhpbiByZWFsLXdvcmxkIHNjZW5hcmlvcyAobGlrZSBoYWNraW5nIGV2ZW50cyBhbmQgZGVtb25zdHJhdGlvbnMpLiBUaGUgcGVvcGxlIHRoYXQgZml4IHRoZSBpc3N1ZXMgd2hlbiB0aGV5IGFyZSBsaXZlLCBkdXJpbmcgcmVjb3JkaW5ncyAmYW1wOyB0aGUgcGVvcGxlIGp1c3QgZXhwbGFpbmVkIGFsbCBzZWVtZWQgdG8gYmUgY2FsbSwga25ldyB3aGF0IHRvIGRvIG9yIGZvciBhdCBsZWFzdCAxIGVtcGxveWVlIGVuam95ZWQgdGhlIHRyaWxsIG9mIHdvcmtpbmcgYWdhaW5zdCB0aGUgaGFja2VycyB0byBnZXQgdGhpbmdzIGZpeGVkLiBUaGlzIHNob3dzIHRoYXQgaW4gc29tZSBjYXNlcyBwcmV2aW91cyBZb3VUdWJlciBoYWNrcyBtYXkgaGF2ZSBoYWQgdGhlIGV4YWN0IHNhbWUgaXNzdWUgYnV0IGJlY2F1c2UgdGhlIFlvdVR1YmVyIHdhc24ndCBhcyB0ZWNoIHVuZGVyc3RhbmRpbmcgYXMgdGhlIGVudGlyZXR5IG9mIHRoZSBMVFQgdGVhbSB0aGF0IHdvcmtlZCBvbiB0aGUgaGFjayBsaXZlLCB0aGV5IG1heSBhc3N1bWVkIGZha2UgaW5mb3JtYXRpb24gYW5kIHdpdGggbm8gb3RoZXIgaW5mb3JtYXRpb24gaGFkIHRvIHRha2UgYXMgdGhlIG1vc3QgcG9zc2libGUgdHJ1dGguCjxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgVGhlIHJlYWwgcHJvYmxlbSB0aG91IGlzIHVuZGVybHlpbmcgYW5kIHRoaXMgaXMgb25lIG9mIHRoZSBmZXcgdGltZXMgd2UgaGFkIHJlYWwgaW5zaWdodCBpbnRvIGl0IG91dHNpZGUgb2YgdGhlIFlvdVR1YmUgSW50ZXJuYWwgVGVjaG5vbG9naWVzIFRlYW0gJmFtcDsgTWFuYWdlbWVudCBmcmFtZXdvcmsuIEkgbXVzdCBzYXksIGl0J3MgYWJvdXQgdGltZSBiZWNhdXNlIHRoaXMgc2hvd3MgZmxhd3MgbWFqb3IgZmxhd3Mgbm90IG9ubHkgd2l0aCB0aGUgdGVjaCBnaWFudCBidXQgYWxzbyBvbiB0aGUgc29mdC1hbGwtd2FyZSB0ZWNobm9sb2dpZXMgR29vZ2xlLCBNaWNyb3NvZnQsIEFwcGxlIGFuZCBvdGhlciBtYWpvciB0ZWNoIGNvbXBhbmllcyBoYXZlIHNvbGQgdXMuPGJyPjxicj48aDEgYWxpZ249ImNlbnRlciIgc3R5bGU9ImFsaWduOmNlbnRlciI+PGI+IjxpPkl0J3MgYWxsIG9uIHRoZSB3aXJlITwvaT4iPC9iPjxicj48L2gxPjxoMiBhbGlnbj0icmlnaHQiIHN0eWxlPSJhbGlnbjpyaWdodDttYXJnaW4tcmlnaHQ6NSU7Ij48c3VwPjxzdWI+Jm5ic3A7ICZuYnNwOyBVbmtub3duIFRlY2ggR2lhbnQgKDE5OTMtMjAxMyk8L3N1Yj48L3N1cD48L2gyPgo8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNvZnQtYWxsLXdhcmUgaXMgZXZlcnl0aGluZyBkb25lIGJ5IHNvZnR3YXJlLiBBbGwtb24tdGhlLXdpcmUgYWthIDxxPjxpPjEtd2lyZTwvaT48L3E+IGlzIHJ1bm5pbmcgYWxsIHNlcnZpY2VzIG92ZXIgdGhlIGludGVybmV0ICZhbXA7IGNsb3VkLiBUaGUgcHJvYmxlbSB0aG91IGlzIHRoZSBjbG91ZCBpcyBqdXN0IHNvbWVvbmUgZWxzZSdzIGNvbXB1dGVyLiBUaGUgb3RoZXIgcHJvYmxlbSBpcyB3aGF0IGhhcHBlbnMgd2hlbiB0aGUgY29tcGFuaWVzIHNheWluZyB0ZWNobm9sb2d5IHdpbGwgbWFrZSBldmVyeXRoaW5nIHNhZmVyLCBmYXN0ZXIsIHN0cm9uZ2VyLCBiZXR0ZXIgaXMgYWxzbyB0aGUgc2FtZSBjb21wYW5pZXMgcHVycG9zZWx5IGNyYWZ0aW5nIGhvbGVzIGluIHRoZWlyIHN5c3RlbSB3aGlsZSBvdGhlciBwYXJ0cyBhcmUgbm93IHN0YXJ0aW5nIHRvIHNob3cgdGhleSB3ZXJlIGp1c3QgZGlnaXRhbCBwYXJsb3IgdHJpY2tzLgo8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFNvZnQtYWxsLXdhcmUsIG1ha2UgaXQgYWxsIHNvZnR3YXJlIGlzbid0IGEgYmFkIHByYWN0aWNlLiBUaGlzIGFsbG93cyBmb3Igc21hbGxlciBkZXZpY2VzIHRvIGhhdmUgYmlnLWRldmljZSBmZWVsLiBDaGVhcGVyIGRldmljZXMgY2FuIGFjdCBsaWtlIHJlYWxseSBiaWcgYW5kIGV4cGVuc2l2ZSBkZXZpY2VzLiBUaGUgcHJvYmxlbSwgdG8gcGVyZm9ybSB0aGlzIHBhcmxvciB0cmljayBvZiBtYWtpbmcgYSBzbG93IHNtYWxsIGNoZWFwIGRldmljZSBmZWVsIGZhc3RlciwgYmlnZ2VyLCBhbmQgbW9yZSBleHBlbnNpdmUgaXMgdGhlIHVzZXIncyBkZXZpY2UgaGFzIHRvIHRhbGsgdG8gYW5vdGhlciBkZXZpY2UgZm9yIGV2ZXJ5dGhpbmcuIFNvIGNlcnRpZmljYXRlcyB3ZXJlIGludmVudGVkIHRvIHJlZ3VsYXRlIHRydXN0ZWQgcGFydGllcyBidXQgZXZlbnR1YWxseSB0aGUgPGI+ZDxpPmVlPC9pPnRzPC9iPiB0byBhIHRlY2ggZ2lhbnQncyBjZXJ0cyB3ZXJlIGxlYWtlZCwgdGhlbiBmcm9tIHRoYXQgb3RoZXIncyBnZXQgc3RvbGVuIHRoZW4gZXZlbnR1YWxseSB0aGUgZW50aXJlIGNlcnRpZmljYXRlIHN5c3RlbSBzaG93cyBpdCdzIGEgZmlhdCBzeXN0ZW0uIEl0IHdvcmtzIGNvbXBsZXRlbHkgb24gdHJ1c3QgaW5zdGVhZCBvZiBwcm9vZnMuIENlcnRpZmljYXRlcyBoYXZlIHByb29mcyB3aXRoIHRoZW0gdG8gcHJvdmUgdGhlIGNlcnQgaXMgYXMgaW50ZW5kZWQgYnV0IHdoZW4gdGhlIGNlcnQgaXMgYmVpbmcgdXNlZCB1bi1pbnRlbmRlZGx5IGFzIGludGVuZGVkLCB3ZWxsIHRoYXQncyB1bnN0b3BwYWJsZSBpbiBhIHRydXN0IHN5c3RlbS4gRXZlbiBpZiB0aGVyZSB3YXMgYSBibG9ja2NoYWluIG9mIGNlcnRzLCBpdCdzIGEgdHJ1c3Qgc3lzdGVtIGFuZCB0aGVyZWZvcmUgd2lsbCBhbHdheXMgYmUgYSBwYXJsb3IgdHJpY2suIE5vdGhpbmcgbW9yZSB0aGVuIGV4Y2VsIHNoZWV0IGRhdGFiYXNpbmcuPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGlzIGlzIHdoeSBJIGFtIGNhbGxpbmcgaXQgYSBwYXJsb3IgdHJpY2ssIHRoaXMgY2VydGlmaWNhdGUgc3lzdGVtIHdhcyBzb2xkIGFzIHRoZSBrZXkgdG8gYWxsb3dpbmcgc29mdC1hbGwtd2FyZSB3b3JrIHdpdGhvdXQgd29ycnkuIEluIHJlYWxpdHkgdGhleSBzaG91bGQgaGF2ZSBqdXN0IGJlZW4gaG9uZXN0IGFuZCBzYWlkLCAiPGk+Q2VydGlmaWNhdGVzIGFyZSBhIHRydXN0IG5ldHdvcmsgb2YgcGFpZCBzcG9uc29ycyB0byBiZSBhYmxlIHRvIHByb2R1Y2UgdW5pcXVlIFNIQSBwcm9vZnMgdGhhdCBjYW5ub3QgYmUgZHVwcGVkIG9ubHkgY29waWVkIGZvciBhcyBsb25nIGFzIHRoZSBTSEEgcHJpdmF0ZSBrZXlzIGFyZSBrZXB0IHNhZmUsPC9pPiIgYmVjYXVzZSB0aGVuIHdoZW4gaGFja3MgaGFwcGVuIHBlb3BsZSBtYXkgaGF2ZSBzb29uZXIgdGhvdWdodCwgY2hlY2sgY2VydHMsIGluc3RlYWQgb2YgZmluYWxseSBkaXNjb3ZlcmluZyB0aGUgZmxhdyBvbmx5IGFmdGVyIHRoZSBlbnRpcmV0eSBvZiB0aGUgc3lzdGVtIGZlbGxlZCBmcm9tIGEgR1BVIGNvbXBhbnkgaGFjayBvYnRhaW5pbmcgY29tcGFueSBDY2VydCBwcm9vZnMsIGtleXMsIGFuZCBtb3JlITxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgQmVjYXVzZSB0aGUgdGVjaCBnaWFudHMga25ldyB0aGUgZmxhdyBiZWZvcmUgaXQgd2FzIHB1YmxpYywgdGhleSBzdGFydGVkIHVzaW5nIGFuIGluZGVwZW5kZW50IGRldmVsb3BlZCBzeXN0ZW0gY2FsbGVkIHRva2VuaXphdGlvbi4gVG9rZW5pemluZyBkYXRhIHdhcyBmaXJzdCB0aG91Z2h0IGFzIGJlc3QgZm9yIGludGVybmFsIHVzZSBzeXN0ZW0gYnV0IHdoZW4gPGI+IjxpPmludGVybmFsIHVzZSBvbmx5PC9pPiI8L2I+IGJlY2FtZSA8Yj4iPGk+b3ZlciB0aGUgaW50ZXJuZXQ8L2k+IjwvYj4sIHRva2VuaXplZCBkYXRhIGJlY2FtZSB2ZXJ5IHVzZWZ1bCB2ZXJ5IHF1aWNrbHkuIEluIG1hbnkgY2FzZXMgdG9rZW5pemluZyBvbmx5IHdvcmtzIGJlY2F1c2UgdGhlIHRva2VuIGlzIGJlaW5nIGdlbmVyYXRlZCBvbiBtYWNoaW5lcyBvciBzb2Z0d2FyZSBvd25lZC9vcGVyYXRlZCBieSB0aGUgY29tcGFueSdzIHNvZnR3YXJlIHlvdSBhcmUgdXNpbmcuIEV2ZW4gT3BlcmF0aW5nIFN5c3RlbXMgKDxiPk9TPC9iPikgd2VyZSBhYmxlIHRvIGJlIHRva2VuaXplZCBhbmQgc2VudCBvdmVyIHRoZSB3aXJlLiBJbiBob25lc3R5LCB0aGlzIHdhcyBhIHJlYWwgc3RlcCB0b3dhcmQgbGVnaXRpbWl6aW5nIDxpPnNvZnQtYWxsLXdhcmU8L2k+LiBUaGlzIGlzIHN0aWxsIGZsYXdlZCBiZWNhdXNlIG5vdy1hLWRheXMgYSBtYWNoaW5lIGdpdmVzIHVwIHNvIG11Y2ggaW5mb3JtYXRpb24gbWFueSBoYWNrZXJzIChpbmNsdWRpbmcgPGk+U2NyaXB0ZXJzPC9pPiBha2EgPGk+U2NyaXB0LUtpZGRpZXM8L2k+KSBjYW4gbWltaWMgdGhlc2UgbWFjaGluZXMgdG8gdGhlbiBnYWluIGhpZ2hlciBsZXZlbHMgb2YgYXV0aG9yaXR5IGZvciB0aGUgcHJpdmlsZWdlIG9mIGFjY2Vzc2luZyBvdGhlciBtYWNoaW5lJ3MgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmUgbGluZSwgZXZlbnR1YWxseSB3b3JraW5nIGFsbCB0aGUgd2F5IHVwIHRvIGEgbWFjaGluZSB3aXRoIGVpdGhlciBoaWdoZXN0IEFQSSB0b2tlbiBhY2Nlc3Mgb3IgaGlnaGVzdCBzZWN1cml0eSBhdXRob3JpdHkgdG8gdGhlbiBtYWtlIHdoYXQgZXZlciBhdHRhY2sgdGhleSBuZWVkLiBBbHRob3VnaCB0aGlzIG1heSBzb3VuZCByZWFsbHkgY29tcGxpY2F0ZWQgYnV0IGluIHJlYWxpdHkgaXQncyBhcyBzaW1wbGUgYXMgYSBib3Qgc2VlaW5nIGJpdHMgb2YgZGF0YSB3aGlsZSBzb21lb25lIHVzZXMgYSBtYWNoaW5lIG9uIGEgbmV0d29yayB5b3UgYXJlIG9uIChkb2Vzbid0IGV2ZW4gaGF2ZSB0byBiZSB5b3UpLiBUaGF0IGJvdCBvbiB0aGUgc2FtZSBuZXR3b3JrIGFzIHlvdSBpcyBqdXN0IHNjYW5uaW5nIGFzIG11Y2ggZGF0YSBhcyBwb3NzaWJsZSBhcyBmYXN0IGFzIHBvc3NpYmxlIG9uIHRoZSBuZXR3b3JrIGFuZCB3aXRoaW4gMyBzZWNvbmRzIGNhbiB0cnkgd2l0aGluIDEgbWlsbGlvbiB0aW1lcyAoZGVwZW5kaW5nIG9uIGludGVybmFsIG5ldHdvcmsgc3BlZWRzKSB0byBhc2sgZm9yIHBlcm1pc3Npb25zLCBpbmZvcm1hdGlvbiwgYWNjZXNzLiBEZXBlbmRpbmcgb24geW91ciBzeXN0ZW0sIGl0IG1heSBqdXN0IGFsbG93IHNvbWUgY29ubmVjdGlvbiBhbmQgaW4gYWxtb3N0IGFsbCBjYXNlcyB3aWxsIGdpdmUgaW5mb3JtYXRpb24gYXQgdGhlIGxlYXN0IGxpa2Ugd2hhdCBPUywgYnJvd3NlciBpbmZvcm1hdGlvbiwgdGltZXpvbmUuIERlcGVuZGluZyBvbiB3aG9tLCBob3cgYW5kIHdoZXJlIHRoZSBxdWVzdGlvbiBpcyBjb21pbmcgZnJvbS90byB3aWxsIGRldGVybWluZSBpZiBhbmQgaG93IG11Y2ggaXMgZ2l2ZW4gb3V0LiBTbyBmb3IgZXhhbXBsZSB0aGUgY29tcGFueSBydW5uaW5nIHlvdXIgQ1BVIG9yIEdQVSBhc2tzIHlvdXIgZGV2aWNlIGZvciBpbmZvcm1hdGlvbiwgeW91ciBkZXZpY2UgaXMgZ29pbmcgdG8gZ2l2ZSBxdWl0ZSBhIGJpdCBhbmQgaWYgeW91IGhhdmUgIjxpPkF1dG9tYXRpYyBVcGRhdGVzPC9pPiIgeW91IG1heSBnaXZlIG1vcmUgaW5mb3JtYXRpb24uIFRoaXMgaXMgbm90IHRoZSByZWFzb24gd2h5IHRoZSBoYWNrZXIgZ3JvdXBzIHdlbnQgYWZ0ZXIgQ1BVLCBHUFUsIE9TICZhbXA7IGhhcmR3YXJlIG1hbnVmYWN0dXJlIGNlcnRpZmljYXRlIHByaXZhdGUgaW5mb3JtYXRpb24gYnV0IG9uY2UgdGhleSBoYWQgaXQsIHNvbWVvbmUgcXVpY2tseSBmaWd1cmVkIG91dCBob3cgaXQgd2FzIGEgZ3JlYXQgYXR0YWNrIHZlY3Rvci4gQ1BVICZhbXA7IEdQVSwgZXZlcnlvbmUgaGFzIG9uZSBvciBjaGlwcyBmcm9tIHRoZXNlIG1hbnVmYWN0dXJlcy4gSnVzdCBob3cgc21hcnRwaG9uZSBjYW1lcmEgem9vbWluZyBjaGlwIG1hbnVmYWN0dXJlcyB3ZXJlIGhpdCBzbyBib3RuZXRzIGNvdWxkIHV0aWxpemUgdGhlIG1pbGxpb25zIG9mIGNlbGxwaG9uZXMgd2l0aCB1bnNlY3VyZSBjaGlwcyBvbiB0aGUgUEMgQm9hcmQgb2YgdGhlIGNhbWVyYS4gVGhlIGF0dGFjayBkb2Vzbid0IG5lZWQgYWNjZXNzIHRvIHlvdXIgZGV2aWNlIGJlY2FzdWUgdGhlIHpvb20gY2hpcCBjYW4gYWNjZXNzIHRoZSBDUFUgb3IgYXQgbGVhc3Qgc2VuZCBmb3IgYWN0aXZhdGlvbnMgYW5kIG1vcmUuIERvZXMgeW91ciBjZWxscGhvbmUgaGF2ZSBuYXRpdmUgM0QgZWZmZWN0cyBhbmQgZmlsdGVycz8gWW91IG1heSBoYXZlIGFuIHVuc2VjdXJlIGNhbWVyYSBjaGlwLgo8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRoZSBhdHRhY2tzIGp1c3Qgc3BlYWtpbmcgYWJvdXQgYWxsIHJldm9sdmUgYXJvdW5kIDMtZmFjdG9yczogPGk+VHJ1c3QgQXV0aG9yaXR5IFN5c3RlbSwgSW50ZXJuYWwgU3lzdGVtcyBhcmUgdGhlIEF0dGFjayBMYW5kc2NhcGUsIFRydXN0IEF1dGhvcml0eSAmYW1wOyBJbnRlcm5hbCBTeXN0ZW1zIGFyZSBtb3JlIGZsYXdlZCB0aGVuIG5vbi10cnVzdCAmYW1wOyBleHRlcm5hbCBzeXN0ZW1zPC9pPi4gRWFjaCBvbmUgaGFzIHRoZSBzYW1lIHR5cGUvc3R5bGUgb2YgYXR0YWNrIHdoaWNoIG1lYW5zIGZpbmQgYSB3YXkgdG8gZXhwbG9pdC91c2Ugb25lIGFuZCB0aGUgb3RoZXJzIHByb2JhYmx5IGNhbiB1c2UgdGhlIHNhbWUgYXR0YWNrLiBUaGV5IGFsbCByZWx5IG9uIHRoZSBob3N0aW5nIGNvbXBhbnkgb2YgdGhlIG1hY2hpbmUgeW91ciBkZXZpY2VzIGFyZSBzcGVha2luZyB0by4gQXMgdGhvc2UgY29tcGFuaWVzIGJlY29tZSBiaWdnZXIsIHNvIGRvZXMgdGhlIGF0dGFjayBsYW5kc2NhcGUgYW5kIHNvIHRoZW4gdGhlIGF0dGFjayB2ZWN0b3IgcG9zc2liaWxpdGllcyBvbmx5IG1hZ25pZnkgbm90IG11bHRpcGx5LCBtYWduaWZ5IGJ5IG1hZ25pdHVkZXMgYXQgcGVyIHNxdWFyZWQgb3IgY3ViZWQgcmF0aW9zIHBlciBsZWcgdGhhdCBsYW5kc2NhcGUgaGFzIHRvIHVwaG9sZC4gTWVhbmluZyBzaW1wbGUsIGZvciBldmVyeSAxIHRoaW5nIHRoZSBpbnRlcm5hbCBzeXN0ZW1zIGhhdmUgdG8gaGFuZGxlLCB0aGUgd2F5cyB0byBhdHRhY2sgaW5jcmVhc2UgZWl0aGVyIGluIG11bHRpcGxlcyBvZiAxMCBzcXVhcmVkIG9yIG11bHRpcGxlcyBvZiAxMCBjdWJlZCBwZXIgQVBJIHRoYXQgaW50ZXJuYWwgc3lzdGVtIGhhbmRsZXMgKGluYm91bmQvb3V0Ym91bmQpLiBXZSBjYW4gYXR0ZW1wdCB0byBzdG9wIGJ1dCB3ZSBjYW5ub3QgcHJldmVudCBzbyBub3cgd2hhdCBoYXBwZW5zIHdoZW4gdGhpcyBhdHRhY2sgbGFuZHNjYXBlIGFsc28gaGFuZGxlcyBmZWF0dXJlcyBsaWtlLCAiPGk+UmV2b2tlIEFjY2VzczwvaT4iPyBFdmVuIGZvciBjcm9zcy1hdXRob3JpdHkgY29tbXVuaWNhdGlvbnMsIGlmIGl0J3Mgb3ZlciB0aGUgd2lyZSBhbmQgbm90IGRpcmVjdCBvbiBzZXJ2ZXIvbWFjaGluZSB3ZWxsIHRoYXQgY29tbXVuaWNhdGlvbiBjYW4gYmUgYmxvY2tlZC4KPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBJZiB0aGUgdXNlciBhdHRhY2tpbmcgaGFzIHRoZSBlcXVhbCBwZXJtaXNzaW9uIGxldmVscyBmcm9tIHN0b2xlbiB0b2tlbnMvY2VydHMgdGhlbiBlcXVhbGx5IGlmIHRoZSBhdHRhY2tlciB3YXMgdG8gcmV2b2tlIHlvdXIgYXV0aG9yaXR5IGZpcnN0LCB5b3UgY2FuIG5vIGxvbmdlciByZXZva2UgdGhlaXJzLiBJbiB0aGUgTFRUIGhhY2ssIGluIHNvbWUga2luZGEgZGlsdXRlZCBhdHRhY2sgKG9mdGVuIG5pbmphIGF0dGFja3MgYXJlIGRpbHV0ZWQpLCB0aGUgdG9rZW4gZm9yIGFjY2VzcyB0byBhIGNoYW5uZWwvcG9ydC9ob2xlIGZvciBoaWdoZXIgYWNjZXNzIHRvIHRoZSB1bWJyZWxsYSBjaGFubmVsIHdoaWNoIGVuZGVkIHVwIHRvIGJlIDxiPjxpPkxpbnVzVGVjaFRpcHM8L2k+PC9iPi4gVGhpcyBpcyBhIGdlbmVyaWNhbGx5IHNpbXBsZSB3YXkgdG8gZXhwbGFpbiB0aGUgYXR0YWNrLiBUaGUgYXR0YWNrZXIgd2FzIHVuYWJsZSB0byBiZSByZXZva2VkIGZyb20gTFRUJ3MgZW5kIGFuZCB0aGF0IGNvdWxkIGJlIGZyb20gYSA8aT5maXJzdC1saWdodCBzd2l0Y2g8L2k+IG9yIDxpPnRoZSBmaXJzdCBpbnZva2VkIGZ1bmN0aW9uIGluIHRoZSBhdHRhY2sgb25jZSBwbGFudGVkPC9pPi4gSWYgdGhlIGZpcnN0LWxpZ2h0IHN3aXRjaCB3YXMgdG8gcmV2b2tlIGFsbCB0b3AgYWNjZXNzIHRva2VucyBsb3dlciBvciBlcXVhbCB0byB0aGUgYXR0YWNrZXIncyB0b2tlbiB0aGVuIG9ubHkgaGlnaGVyIGF1dGhvcml0aWVzIGNhbiByZXZva2UuIFRoaXMgY2FuIGJlIHRyaWNreSBieSB0aGUgaGlnaGVyIGF1dGhvcml0eSBiZWNhdXNlIHRoZXkgc2ltcGx5IGNhbm5vdCBqdXN0IGFjdCBvciBlbHNlIHRoYXQncyBhIGRpZmZlcmVudCBhdHRhY2sgbWV0aG9kIHNvIHRoZSBhdHRhY2tzIGJldCBvbiB0aW1lIGJldHdlZW4gdXNlcnMgcmVhbGl6aW5nIHRoZXkgY2Fubm90IHN0b3AgdGhlIGF0dGFjayBhbmQgdGhlbiB0aGUgaGlnaGVyIGF1dGhvcml0eSBnZXR0aW5nIGludm9sdmVkIHRvIHRoZW4gbWFraW5nIGFuIGFjdGlvbi4gVGhlIHdheSB0aGUgYXR0YWNrIHdhcyBkZXNjcmliZWQgYnkgdGhlIExUVCB0ZWFtLCBpdCBkb2VzIGFwcGVhciBldmVyeSBwb2ludCBpbiB0aGVpciBZb3VUdWJlIEhhY2sgd2FzIHZpYSBpbnRlcm5hbCBzeXN0ZW1zIG9uY2UgdGhlIGluaXRpYWwgdG9rZW4gd2FzIHN3ZXB0Ljxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgVGhpcyBpcyB3aHksIGluIG15IG9waW5pb24sIHRoZSBiaWdnZXIgYSB0ZWNoIGNvbXBhbnkgZ2V0cyB0aGUgd29yc2UgaXQncyBzb2Z0d2FyZSBiZWNvbWVzLiBJdCdzIG5vIGRvdWJ0IFdpbmRvd3MgMy4xLCAxOTk4LCBYUCAmYW1wOyA3IGFsbCB3b3JrIGJldHRlciB0aGVuIGN1cnJlbnQgZ2VuZXJhdGlvbiB3aW5kb3dzLiBXaW5kb3dzIHZpc3RhIGhhZCBtYW55ICI8Yj4xLXdpcmU8L2I+IiBidWlsdCBpbiBhbmQgd2FzIGNvbnNpZGVyZWQgdmVyeSB0ZXJyaWJsZS4gVGhlIG92ZXIgdGhlIHdpcmUgc3lzdGVtcyBhbGwgZmFpbCBhcyB0aGUgY29tcGFueSBncm93cy4gTXlzcGFjZSBmZWxsIG91dCBvZiBmYXZvciBhcyBpdCBncmV3IGZhc3Rlci4gRmFjZWJvb2sgb25jZSBpdCBoaXQgdGhlaXIgdWx0aW1hdGUgdG9wLCBwbGF0ZWF1ZWQuCjxicj48YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IElmIHRoaXMgZG9lc24ndCB3b3JrIHdlbGwgb3IgYXMgYWR2ZXJ0aXNlZC9zb2xkLCB3aHkgdXNlIGl0PyBIaWRkZW4gcmV0dXJuIGNvbW11bmljYXRpb25zLiBBdXRvbWF0ZWQgdXBkYXRlcyB3YXMgaW52ZW50ZWQgZm9yIHNvbWVvbmUgdG8ga2VlcCBhIHNvZnR3YXJlIG9yIGdhbWUgdXBkYXRlZCBhbGwgdGhlIHRpbWUgYnkgc2Nhbm5pbmcgYW4gUlNTIGZlZWQgZm9yIG5ldyBlbnRyaWVzIHRoZW4gYXV0b21hdGljYWxseSBncmFiYmluZyBhbmQgaW5zdGFsbGluZyBuZXcgZW50cmllcyB0byBhbiB1cGRhdGUgZm9ydW0uIEFib3V0IDEwIHllYXJzIGFmdGVyIG1vc3QgbWFqb3IgY29tcGFuaWVzIGFuZCBPUydzIHdlcmUgdXRpbGl6aW5nIDxpPmF1dG9tYXRlZCB1cGRhdGVzPC9pPiwgdGhlIGF1dG9tYXRlZCB1cGRhdGVzIHRvb2sgYSB0dXJuIHRvIHdoZXJlIGluIG1hbnkgY2FzZXMgZGV2ZWxvcGVycyBkaXJlY3RseSBvbiBHaXRIdWIgd2VyZSBnaXZlbiBhY2Nlc3MgdG8gcHJvZHVjZSA8aT5hdXRvbWF0ZWQgdXBkYXRlczwvaT4gJmFtcDsgZGVsaXZlciB0aGVtIC0tZnJvbSBHaXRIdWIuIE5vdyB0aGVyZSdzIGEgbmV3IGxlZywgbm93IHRoZXJlJ3MgYSBuZXcgbGFuZHNjYXBlIHRvIHRoZSBhdHRhY2sgbm93Li4udGhlIGF0dGFjayBjYW4gYmUgdXBkYXRlZCB0byB5b3Ugb3ZlciB0aGUgPGk+MS13aXJlIDxiPmF1dG9tYXRlZCB1cGRhdGU8L2I+IHN5c3RlbTwvaT4uIFRoZSByZWFzb24gdGhpcyB3b3JrcyBpcyBiZWNhdXNlIG9mIGhpZGRlbiByZXR1cm4gY29tbXVuaWNhdGlvbnMuIEF0dGFja2VycyBjYW4gYXR0YWNrIHRoZSBoaWRkZW4gcmV0dXJuIGNvbW11bmljYXRpb25zIG9mIGEgcmVhbCBhdXRvIHVwZGF0ZSB0byB0aGVuIGhpamFjayB0aGUgbGluZSBlbnRyeSB0byBwdXNoIGEgbWFsaWNpb3VzIHVwZGF0ZS4gVGhpcyBpcyB3aHkgbWFueSBMaW51eCBhbmQgU3VwZXJVc2VycyBkb24ndCByZWx5IG9uIGF1dG8gdXBkYXRlcywgdGhleSBtYXkgZ2V0IG5vdGlmaWNhdGlvbnMgb2YgdXBkYXRlcyBhdmFpbGFibGUgYnV0IHRoZXkgZWl0aGVyIHZlcmlmeSBpdCBvciB0YWxrIHRvIHBlb3BsZSB3aXRoaW4gdGhlaXIgcGVyc29uYWwgdHJ1c3QgbmV0d29yayB0byBzZWUgaWYgYW55b25lIGVsc2UgdmVyaWZpZWQgaXQuIFNvbWUgcGVvcGxlIGp1c3Qgd2FpdCBsb25nIGVub3VnaCBmb3IgaXNzdWVzIHRvIGJlIHNwb3R0ZWQgb3Igb25seSBnZXQgc3BlY2lmaWMgdGltZS1wb2ludCB1cGRhdGVzLiBUaGlzIGlzIHNvcnRhIHNpbWlsYXIgdG8gc2FpZCBwcmV2aW91c2x5IGJ1dCBpZiBtb3JlIHBlb3BsZSBzZWxmLXZlcmlmaWVkIHRoZW4gdGhlcmUgd291bGQgYmUgbW9yZSBjcm9zcyB2ZXJpZmlhYmxlIGluZm9ybWF0aW9uIHdoaWNoIGNvdWxkIGhlbHAgc3BvdCBwcm9ibGVtcyBmYXN0ZXIgd2l0aGluIHRoZSBjb21tdW5pdHkgYnV0IHRoZXJlIHdpbGwgYWx3YXlzIGJlIHRoYXQgdHlwZSBvZiB2ZWN0b3IuIFRydXN0LCBBdXRvLCBMdXh1cnkgKGV2ZW4gQXNzaXN0aXZlIEx1eHVyeSkgd2lsbCBhbHdheXMgYmUgYSB0eXBlIG9mIGF0dGFjayB2ZWN0b3IsIHdlIGNhbiBvbmx5IHRyeSB0byBzdG9wIGF0dGFja3Mgd2hpY2ggYnJpbmdzIHVwIHRoZSBvcmlnaW5hbCBwb2ludCwgIjxpPjxiPldoYXQgaWYgeW91IGNhbid0IHN0b3AgaXQ/PC9iPjwvaT4iIAo8YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRoZSBmZWF0dXJlcyB3aXRoaW4gdGhlIGludGVybmFsIHN5c3RlbXMgY2FuIGJlIHN3aXRjaGVkIG9mZiBiZWZvcmUgeW91IGJ1dCB0aGUgYWJpbGl0eSBmb3IgdGhhdCBzeXN0ZW0gdG8gZXZlbiBjb21tdW5pY2F0ZSBpbiB0aGUgZmlyc3QgcGxhY2UgcmVxdWlyZXMgYSBmcm9tIG9mIHJldHVybiBjb21tdW5pY2F0aW9ucyBhbmQgc28gdGhlIGFiaWxpdHkgdG8gc2VuZCBoaWRkZW4gcmV0dXJuIGNvbW11bmljYXRpb25zIGlzIGFsd2F5cyBwcmVzZW50LiBUaGlzIGlzIHdoZW4gd2UgZ2V0IHRvIHRoZSBjb21tdW5pY2F0aW9ucyBzZW5kaW5nIGJhY2sgdG8gdGhlIHNlcnZlciBpcyBvbmx5IG5lZWRlZCBmcm9tIHNvbWUgYXR0YWNrIHBvaW50cywgdGhlcmUncyBvdGhlciB3YXlzIHRvIGV4cGxvaXQgdGhlIHNhbWUgd2l0aG91dCBhbnkgcmV0dXJuIGNvbW11bmljYXRpb25zIGJ1dCBqdXN0IGhhdmluZyBjZXJ0aWZpY2F0ZS90b2tlbiB0dW5uZWwvYWNjZXNzIGNvbW11bmljYXRpb25zIGlzIHN0aWxsIGV4cGxvaXRhYmxlIGluIHNpbWlsYXIgb3IgdGhlIGV4YWN0IHNhbWUgd2F5cy4gSnVzdCBhcyB0aGUgbWFqb3IgZmxhdyB3aXRoIFNvZnQtYWxsLXdhcmUsIHRoZSBtYWpvciBhdHRhY2sgdmVjdG9yIGZvciB0aGlzIGRpZ2l0YWwgbGFuZHNjYXBlIGlzIGFsc28gcmV0cm9hY3RpdmUuIEFueSB2ZWN0b3IgcG9pbnQgb24gdGhlIHNhbWUgb3IgY29ubmVjdGVkIGxhbmRzY2FwZSBpcyB0aGVuIHZhbHVhYmxlIHRvIHRoZSBvdGhlcidzIHZ1bG5lcmFiaWxpdHkuIEp1c3QgaG93IHJlZmVycmVycyBhbmQgaWZyYW1lcyBhcmUgdnVsbmVyYWJpbGl0aWVzIGJlY2F1c2UgdGhleSBiYXNpY2FsbHkgaW1wb3J0IHRoZSBjb25uZWN0ZWQgZGF0YSB0byB5b3VyIGVuZHBvaW50LCB2dWxuZXJhYmlsaXRpZXMgYW5kIGFsbCBmbGF3cy4gRXZlbiBpZiB0aGVzZSByZWZlcnJlcnMvaWZyYW1lcyBhcmUgd2l0aGluIHRoZSBzYW1lIGludGVybmFsIHN0cnVjdHVyZSwgdGhleSBhcmUgdnVsbmVyYWJsZSB0byB0aGlzIGNvbW11bmljYXRpb25zIHZlY3Rvci48YnI+Jm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7IFRoZSBlbnRpcmUgY29tbXVuaWNhdGlvbiBlbmQtcG9pbnQgY2FuIGJlIG9wZW5lZCBvciBjbG9zZWQgZnJvbSB3aXRoaW4gdGhlIHN5c3RlbS4gVGhlIGludGVybmFsIHN5c3RlbXMgYXJlIGZ1bGx5IGhvbGVkIGZvciBBUElzIHNvIG5vdyBvbmNlIGVudGVyZWQgdmlhIGFueSBwb2ludCwgdGhleSBwcmV0dHkgbXVjaCBnZXQgYWNjZXNzIHRvIG1vcmUgYW5kIGdyZWF0ZXIgYXV0aG9yaXRpZXMuIFRoaXMgaXMgd2h5IGluIHRoZSBwYXN0IHRoZXJlIGhhdmUgYmVlbiB0aW1lcywganVzdCBsaWtlIExUVCwgd2hlcmUgdG8gc29sdmUgdGhlIGF0dGFjayBZb3VUdWJlL0dvb2dsZSAodW5zdXJlIHdoaWNoIGF1dGhvcml0eSBBUEkgdHJpZ2dlcmVkIHRoaXMgc29sdXRpb24gb24gdGhlIGJhY2tlbmQpIGhhZCB0byBkZWxldGUgTFRUJ3MgY2hhbm5lbC4gVGhpcyByZW1vdmVzIGFsbCBwb3NzaWJsZSBhdXRob3JpdHkgdXAgdG8gR29vZ2xlLiBBZnRlciB0aGF0IG9ubHkgR29vZ2xlIGF1dGhvcml0eSBjYW4gcHVsbCB0aGF0IGRhdGEgb3V0IG9mIGl0J3MgaGlzdG9yeSBzZXJ2ZXJzLiBJZiB0aGUgYXR0YWNrZXJzIGV2ZXIgbWFrZSBpdCB0aGF0IGZhciB1cCAod2hpY2ggdGhleSBoYXZlIGJlZm9yZSksIHRoaXMgYXR0YWNrIGNoYWluIGNhbiBnbyBvbiBsaXRlcmFsbHkgZm9yZXZlciBvciB1bnRpbCBZb3VUdWJlIGlzIHNodXRkb3duIGFuZCByZWJvb3RlZCAoYXMgdGhleSBkbyB3aXRoIGFjY291bnRzKSBmb3IgdGhhdCB3b3VsZCByZXF1aXJlIGV2ZW4gaGlnaGVyIGFjY2VzcyB3aXRoaW4gdGhlIEdvb2dsZSBhdXRob3JpdHkgY2hhaW4uIEV2ZW50dWFsbHkgeW91IGdldCB0byBhIHBvaW50IHdoZXJlIGl0J3MgcG9zc2libGUgZm9yIGFuIGF0dGFja2VyIHRvIGdhaW4gZnVsbCBjb250cm9sbGluZyBhY2Nlc3Mgb2YgZ29vZ2xlIGJlY2F1c2Ugb2YgYSB0b2tlbiBmcm9tIGEgY2hhbm5lbCB1c2VyIG9uIGEgc2lkZS1sZWcgb2YgdGhlIHNhbWUgaW50ZXJuYWwgc3lzdGVtIGFzIEdvb2dsZS4gUmVtZW1iZXIgd2hlbiBGYWNlYm9vayB3ZW50IG9mZmxpbmUgZm9yIGEgZGF5LCB0aGlzIGNvdWxkIGJlIGJpZ2dlci4KPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGVzZSBiaWcgY2xvdWQgaW5mcmFzdHJ1Y3R1cmVzIG1heSBiZSBkaXN0cmlidXRlZCBidXQgYXJlIGFsbCBjZW50cmFsaXppbmdseSBjb250cm9sbGVkIHZpYSB0aGUgY29uc2Vuc3VzIHdhbGwgYnkgc2ltcGx5IG5vdCBoYXZpbmcgYSBjb25zZW5zdXMgYmFzZWQgb24gcHJvb2ZzIGFuZCB3b3JrLiBJbnN0ZWFkIHRoZXkgYXJlIGJhc2VkIG9uIHRydXN0IGFuZCBoaWRpbmcgdGhpbmdzIHRoZSBiZXN0IHRoZSBjb3Jwb3JhdGlvbihzKSBjYW4uCjxicj4KPGJyPiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyBUaGVyZSBhcmUgc29sdXRpb25zIGJ1dCB1bmZvcnR1bmF0ZWx5IGV2ZW4gdGhvc2UgYXJlIGZsYXdlZCBzdGlsbCBhdCB0aGUgbW9tZW50LlRoZSBsYXN0IDIwIHllYXJzIGhhZCBhICI8aT5KdW1wIEluIFRlY2hub2xvZ3k8L2k+IiBidXQgaW4gcmVhbGl0eSB0aGUgbWFjaGluZSBvciBoYXJkd2FyZSBoYXMgIjxpPjxiPkp1bXBlZCBJbiBUZWNobm9sb2d5PC9iPjwvaT4iIGJ1dCB0aGF0J3MgcmVhbGx5IGFib3V0IGl0LiBUaGUgdGVjaG5pY2FsIHNvZnR3YXJlICI8Yj5KdW1wPC9iPiIgd2FzIGFsbCBhIGZhw6dhZGUsIGl0IHdhcyBleGNlbCBiYXNlZCBkYXRhYmFzZSB0ZWNobmlxdWVzIGFjdGluZyBhcyByZWFsIG1hdGhlbWF0aWNhbCBvciBzY3JpcHQtd2lzZSBzb2x1dGlvbnMuIEluc3RlYWQgd2UgZ290IEFQSSB0byBzcHJlZWRzaGVldGluZy4gVGhpcyBpcyB3aHkgYmxvY2tjaGFpbiBkYXRhYmFzaW5nIGlzIGhlbHBpbmcgcmVtb3ZlIG1hbnkgYXR0YWNrIHZlY3RvcnMgYnkgcmVtb3ZpbmcgbGVncyBhbmQgc2ltcGxpZnlpbmcgb3Igc2NhbGluZy1kb3duIHRoZSBsYW5kc2NhcGUgaW4gd2hpY2ggYXR0YWNrcyBjYW4gZXZlbiBiZSBtYWRlLjxicj4mbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgSWYgdGhlIExUVCBZb3VUdWJlIENoYW5uZWwgSGFjayB0YXVnaHQgcGVvcGxlIGFueXRoaW5nIGlzIHRoYXQgYWxsIG9mIHRoZSBvdmVyLXRoZS1pbnRlcm5ldCBzZWN1cml0aWVzIGFyZSBhbGwgZmHDp2FkZXMgYW5kIHdpbGwgZmFpbCwgeW91IGNhbiBlaXRoZXIga2VlcCBtb3ZpbmcgZnJvbSBmbGF3IHRvIGZsYXcganVzdCBtaXRpZ2F0aW5nIHRoZSB0aW1lIGJlZm9yZSB5b3VyIG5leHQgaGl0IG9yIHlvdSBjYW4gY2hhbmdlIHN5c3RlbXMgYW5kIGhhc2ggeW91ciBsaWZlIHdpdGggaGFzaGxpbmtzLCBoYXNoZWQtbWVzaG5ldHMsIGR5bmFtaWMtaGFzaGluZyB3ZWItYXBwbGljYXRpb25zIGZvciB2ZXJpZmlhYmxlIGRhdGEtQVBJIHN0cnVjdHVyZXMuIExldCdzIHJlbW92ZSB0cnVzdCBhbmQgdGFrZSBiYWNrIHRoZSBpbnRlcm5ldC4gVGhlIGxvbmdlciB3ZSBsZXQgY29tcGFuaWVzIHNlZSB3aGF0IHdlIGRvIHRocm91Z2ggdGhlaXIgaGlkZGVuIGNvbW11bmljYXRpb25zLCB0aGUgbW9yZSB0aG9zZSBzeXN0ZW1zIHdpbGwgYmUgaGl0IGJ5IGF0dGFja2VycywgaGFja2VycywgYm90cyBhbmQgZ292ZXJubWVudHMuIFRoaXMgaXMgd2h5LCB0aGV5IHdpbGwgZmFpbCBmb3JldmVyIHVudGlsIHRoZXkgY29tcGxldGVseSByZW1vdmUgdGhlaXIgZXllcyBmcm9tIHRoZSBkaWdpdGFsIGxhbmRzY2FwZS48L3NwYW4+PC9oND48L2xhYmVsPiZuYnNwOyA8bGFiZWw+PHNwYW4gYWxpZ249InJpZ2h0IiBzdHlsZT0icmlnaHQ6MDsiPjxoNCBzdHlsZT0ibWFyZ2luLXRvcDotMi41dnc7bWFyZ2luLWJvdHRvbTotMnZ3OyI+PHNwYW4gYWxpZ249InJpZ2h0IiBzdHlsZT0icmlnaHQ6MDsiIGlkPSJvdXRib3R0Ij4zRG91Z2xhcyAiPGI+PGk+M0Q8L2k+PC9iPiIgUGlobDwvc3Bhbj4gJm5ic3A7IEA8c3BhbiBpZD0iYXV0aG9ybmFtZSI+SUZ0ZG9DQ2dRRE5FYjNWbmJHRnpJQ0k4WWo0OGFUNHpSRHd2YVQ0OEwySStJaUJRYVdoc29DQ2dJRnNqVnpBeFZWZFVVazVTUm13MVZHMXdjazB3TlVWVVdHUk9aSG93T1ZoVFFUWlBhVUppVW10V1EwNUVTWGROYWs1a1hTQT08L3NwYW4+PC9oND4KJm5ic3A7ICZuYnNwOzxzcGFuIHN0eWxlPSJ3aWR0aDo1dnc7bWFyZ2luLXRvcDotMy41dnc7bWFyZ2luLWJvdHRvbTotMC41dnc7IiBpZD0iYWRoZXJlIiBhbGlnbj0ibGVmdCIgb25jbGljaz0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FkbGluaycpLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWR0ZXh0aW4nKS5zdHlsZS5kaXNwbGF5PSdub25lJzsiPjxicj48L3NwYW4+PHNwYW4gYWxpZ249ImNlbnRlciIgaWQ9ImFkaW1nIiBzdHlsZT0id2lkdGg6OTglO3JpZ2h0OjUwO2xlZnQ6NTA7aGVpZ2h0OmF1dG87IiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyI+PGEgYWxpZ249ImNlbnRlciIgaHJlZj0iIiB0YXJnZXQ9Il9ibGFuayIgOz0iIiByZWw9Im5vcmVmZXJyZXIgbm9vcGVuZXIiPjxpbWcgc3JjPSJJbWFnZSBMaW5rIiBzdHlsZT0id2lkdGg6OTglOyBhbGlnbjpjZW50ZXI7IiBhbGlnbj0iY2VudGVyIj48L2E+PC9zcGFuPgombmJzcDs8bGFiZWw+PGhyIHN0eWxlPSJtYXJnaW4tdG9wOjAuNXZ3O21hcmdpbi1ib3R0b206LTAuNzV2dzsiPjxoMyBhbGlnbj0iY2VudGVyIj48c3BhbiBpZD0icHJlbmFtZSI+PHN1Yj5JZiB5b3UgbGlrZWQgdGhpcyBQdnRQcHIgcGxlYXNlIGNvbnNpZGVyIGRvbmF0aW5nIHRvIHRoZSBhdXRob3IsIDNEb3VnbGFzICI8Yj48aT4zRDwvaT48L2I+IiBQaWhsLCBieSB1c2luZyB0aGUgY3J5cHRvLWFkZHJlc3Mgb3IgQ29pbnRyZWUgbGluayBiZWxvdy4gJm5ic3A7IFRoYW5rIHlvdS48L3N1Yj48YnI+PGJyPjwvc3Bhbj48c3ViPjxzcGFuIGFsaWduPSJsZWZ0Ij48Yj48aT48c3BhbiBpZD0iYnRjYWRkeSI+V0FYUDovLzNELk5pbmphPC9zcGFuPjwvaT48L2I+PC9zcGFuPiAmbmJzcDsgPGI+PHNwYW4gYWxpZ249InJpZ2h0Ij48aT48c3BhbiBpZD0ibHRjYWRkeSI+PGEgaHJlZj0iaHR0cHM6Ly9jb2ludHIuZWUvM0RfIiB0YXJnZXQ9Il9ibGFuayIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOmRhcmtncmVlbjsiPjNEXydzIENvaW50ci5lZTwvYT48L3NwYW4+PC9pPjwvc3Bhbj48L2I+PC9zdWI+PC9oMz48aDQgaWQ9InR1YmVhaXIiIGFsaWduPSJjZW50ZXIiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PHN1cD5QdnRQcHJzIGNhbiBiZSBtb25ldGl6ZWQgYnkgQml0dHViZSBBaXJ0aW1lICZhbXA7IHRvIGhlbHAgdGhlIGF1dGhvciBnaWFuICQ8aT5UVUJFUzwvaT4gZnJvbSB5b3UgcmVhZGluZyB0aGlzIHBhcGVyLCBwbGVhc2UgdXNlIG9yIGluc3RhbGwgdGhlIDxzcGFuIG9uY2xpY2s9IndpbmRvdy5vcGVuKCdodHRwczovL2Nocm9tZS5nb29nbGUuY29tL3dlYnN0b3JlL2RldGFpbC9iaXR0dWJlLWFpcnRpbWUtZG9uYXRpb25zL2Nub2diYm1jaWZmcGlibWtwaG9ocGViZ2htb21hZW1pJykiIHN0eWxlPSJjb2xvcjpncmVlbjsiPkJpdHR1YmUgQWlydGltZSBFeHRlbnNpb248L3NwYW4+IG9yIHVzZSB0aGUgPHNwYW4gc3R5bGU9ImNvbG9yOmdyZWVuIiBvbmNsaWNrPSJ3aW5kb3cub3BlbignaHR0cHM6Ly9iaXR0dWJlLmFwcCcpIj5CaXR0dWJlIEJyb3dzZXI8L3NwYW4+Ljwvc3VwPjwvaDQ+PC9sYWJlbD4KJm5ic3A7PGRpdiBhbGlnbj0iY2VudGVyIj48bGFiZWw+PGg1IHN0eWxlPSJtYXJnaW4tdG9wOi0ydnc7Ij48c3BhbiBzdHlsZT0ibGVmdDowOyBtYXJnaW4tcmlnaHQ6Mi41dnc7bWFyZ2luLWxlZnQ6LTEuNXZ3OyIgYWxpZ249ImxlZnQiPk1hZGUmbmJzcDt3aXRoJm5ic3A7PHNwYW4gaWQ9IkRGQ2FiaW5ldCIgc3R5bGU9InRleHQtZGVjb3JhdGlvbjpub25lOyI+PGEgaHJlZj0iaHR0cHM6Ly9QdnRQcHIuYXBwL1dyaXRlIiB0YXJnZXQ9Il9ibGFuayI+UHZ0UHByJm5ic3A7R2VuZXJhdG9yJm5ic3A7TGl0ZTwvYT48L3NwYW4+PHN1cD48c3VwIGlkPSJ5ZWFyMSI+MjAyMzwvc3VwPjwvc3VwPjwvc3Bhbj4gPHNwYW4gaWQ9InByZXYiIHN0eWxlPSJtYXJnaW4tdG9wOi0xLjVweDttYXJnaW4tYm90dG9tOjEuNXB4OyBtYXJnaW4tbGVmdDoyLjV2dzsgcmlnaHQ6MDsgbWFyZ2luLXJpZ2h0Oi0xLjV2dztib3JkZXItcmFkaXVzOjE1JTtwYWRkaW5nOjNweDsiIGFsaWduPSJyaWdodCI+PGEgaHJlZj0iaHR0cHM6Ly95b3V0dWJlLmNvbS9wbGF5bGlzdD9saXN0PVBMQ2t6VFhlMEJFcHhleXNFYzNnNVg2a0xoZlFYWTdMVTUiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIG5vcmVmZXJyZXIiIHN0eWxlPSJib3JkZXI6IDAuMDF2dyBzb2xpZCBkYXJrZ3JlZW47IGJhY2tncm91bmQtY29sb3I6bGltZWdyZWVuOyBjb2xvcjpibGFjazsgYm94LXNoYWRvdzpkaW1ncmV5IDNweCA2cHggOXB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsiPlByZXZpb3VzJm5ic3A7UGFwZXI8L2E+PC9zcGFuPjwvaDU+PC9sYWJlbD48c3BhbiBzdHlsZT0iYm94LXNoYWRvdzpkaW1ncmV5IDNweCA2cHggOXB4O2xlZnQ6MDsiIGFsaWduPSJsZWZ0IiBpZD0iY2VydGFibGUiPjxhIGhyZWY9Imh0dHBzOi8vcHZ0cHByLmFwcC9jZXJ0cyIgdGFyZ2V0PSJfYmxhbmsiIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrO2NvbG9yOndoaXRlOyI+R2V0Jm5ic3A7YSZuYnNwO0NlcnRhYmxlPC9hPjwvc3Bhbj48L2Rpdj4KJm5ic3A7PGhyPjxzcGFuIGlkPSJxcmltZyIgY2xhc3M9InFyaW1nIiBhbGlnbj0icmlnaHQiIHN0eWxlPSJyaWdodDowO21hcmdpbi1sZWZ0OjUwJTsiPjxpbWcgY2xhc3M9InFyaW1nIiBzcmM9Imh0dHBzOi8venhpbmcub3JnL3cvY2hhcnQ/Y2h0PXFyJmFtcDtjaHM9MTE1eDExNSZhbXA7Y2hsZD1IfDEmYW1wO2Nob2U9VVRGLTgmYW1wO2NobD1odHRwczovL3R3aXR0ZXIuY29tL1owTThJM0QiIGFsaWduPSJyaWdodCI+PC9zcGFuPjxzcGFuIHN0eWxlPSJvcGFjaXR5OjAuNTM7Y29sb3I6Z3JleTsiIGFsaWduPSJsZWZ0Ij4mbmJzcDsKJm5ic3A7PGJyPjxzcGFuIG9uY2xpY2s9ImFsYWxlcnQoKSI+UHZ0UHByLiAyMDE4LTxzcGFuIGlkPSJ5ZWFyMiI+MjAyMzwvc3Bhbj4gPGJyPiBQcml2YXRlIFBhcGVyIDIwMTgtPHNwYW4gaWQ9InllYXIzIj4yMDIzPC9zcGFuPjwvc3Bhbj4gPGJyPgo8c3BhbiBpZD0iZm9vdGVuIiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdHNwJykuc3R5bGUuZGlzcGxheT0nYmxvY2snOyI+QSBUaG91Z2h0IENoaWxkIG9mIHRoZSAzIEpva2Vyczwvc3Bhbj4KPHNwYW4gaWQ9ImZvb3RzcCIgb25jbGljaz0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvb3RjaCcpLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPlVuIHBlbnNhbWllbnRvIGhpam8gZGUgbG9zIDMgY29tb2RpbmVzPC9zcGFuPgo8c3BhbiBpZD0iZm9vdGNoIiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdGpwJykuc3R5bGUuZGlzcGxheT0nYmxvY2snOyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+5LiJ5Liq5bCP5LiR55qE5oCd5oOz5a2p5a2QPC9zcGFuPgo8c3BhbiBpZD0iZm9vdGpwIiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdHJ1Jykuc3R5bGUuZGlzcGxheT0nYmxvY2snOyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+M+S6uuOBruOCuOODp+ODvOOCq+ODvOOBruaAneiAg+OBruWtkDwvc3Bhbj4KPHNwYW4gaWQ9ImZvb3RydSIgb25jbGljaz0idGhpcy5zdHlsZS5kaXNwbGF5PSdub25lJzsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Zvb3RzdycpLnN0eWxlLmRpc3BsYXk9J2Jsb2NrJzsiIHN0eWxlPSJkaXNwbGF5Om5vbmUiPtCc0YvRgdC70LXQvdC90L7QtSDQlNC40YLRjyAzINCU0LbQvtC60LXRgNC+0LI8L3NwYW4+CjxzcGFuIGlkPSJmb290c3ciIG9uY2xpY2s9InRoaXMuc3R5bGUuZGlzcGxheT0nbm9uZSc7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmb290ZHUnKS5zdHlsZS5kaXNwbGF5PSdibG9jayc7IiBzdHlsZT0iZGlzcGxheTpub25lIj5FdHQgdMOkbmt0IGJhcm4gYXYgZGUgMyBqb2thcm5hPC9zcGFuPgo8c3BhbiBpZD0iZm9vdGR1IiBvbmNsaWNrPSJ0aGlzLnN0eWxlLmRpc3BsYXk9J25vbmUnOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZm9vdGVuJykuc3R5bGUuZGlzcGxheT0nYmxvY2snOyIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+RWluIEdlZGFua2Vua2luZCBkZXIgMyBKb2tlcjwvc3Bhbj4KPC9zcGFuPjxicj48cCBhbGlnbj0iY2VudGVyIj48L3A+PHAgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6YmxhY2s7Y29sb3I6c2lsdmVyO2JveC1zaGFkb3c6ZGltZ3JleSAzcHggNnB4IDlweDt0ZXh0LWFsaWduOmxlZnQ7bGVmdDowO3dpZHRoOmF1dG87YnJlYWstd29yZDprZWVwLWFsbDsiIGFsaWduPSJsZWZ0IiByZWw9Im5vcmVmZXJyZXIgbm9vcGVuZXIiIHRhcmdldD0iX3NlbGYiIG9uY2xpY2s9IndpbmRvdy5vcGVuKCdodHRwczovL1B2dFBwci5hcHAvTmV3c2NoYWluJyk7Ij5SZWFkJm5ic3A7dGhlJm5ic3A7T2ZmaWNpYWwmbmJzcDtQdnRQcHImbmJzcDs8Yj48aT5OZXdzY2hhaW48L2k+PC9iPjwvcD48cCBvbmNsaWNrPSJBbGVydENoZWNrKCk7IiBpZD0iTGlua0NvdmVyIiBzdHlsZT0iY29sb3I6c2lsdmVyO3dvcmQtYnJlYWs6a2VlcC1hbGw7d2hpdGUtc3BhY2U6bm93cmFwO3dvcmQtd3JhcDpub3JtYWw7bWFyZ2luLXRvcDotMnZ3O3RleHQtYWxpZ246cmlnaHQ7YmFja2dyb3VuZC1jb2xvcjpibGFjaztib3gtc2hhZG93OmRpbWdyZXkgM3B4IDZweCA5cHg7Ij4zRDombmJzcDs8Yj4jPGk+MTUzMTdmZXV3Z3M4am88L2k+PC9iPjwvcD48cD48L3A+PGhyPjxicj48YnI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+CjxzY3JpcHQ+wqAKCgrCoCDCoCAvLyBBZGRlZCBldmVudCBsaXN0ZW5lciB0byB0aGUgc2Nyb2xswqAKwqAgwqAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcswqAKwqAgwqAgwqAgwqAgwqAgwqAgbW92ZVNjcm9sbEluZGljYXRvcik7wqAKCgrCoCDCoCAvLyBHZXR0aW5nIHNjcm9sbEluZGljYXRvciBlbGVtZW50IGJ5IElEwqAKwqAgwqAgY29uc3Qgc2Nyb2xsSW5kaWNhdG9yRWx0ID3CoMKgCsKgIMKgIMKgIMKgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxJbmRpY2F0b3InKTvCoAoKCsKgIMKgIC8vIEhlaWdodCBvZiBlbnRpcmUgd2ViIHBhZ2UgLSBoZWlnaHTCoArCoCDCoCAvLyBvZiB2aWV3YWJsZSBwb3J0aW9uIG9mIGJyb3dzZXLCoArCoCDCoCBjb25zdCBtYXhIZWlnaHQgPcKgwqAKwqAgwqAgwqAgwqAgd2luZG93LmRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0wqDCoArCoCDCoCDCoCDCoCAtIHdpbmRvdy5pbm5lckhlaWdodDvCoAoKCsKgIMKgIGZ1bmN0aW9uIG1vdmVTY3JvbGxJbmRpY2F0b3IoZSkge8KgCgoKwqAgwqAgwqAgwqAgLy8gQ2FsY3VsYXRpbmcgd2lkdGggb2YgdGhlwqDCoArCoCDCoCDCoCDCoCAvLyBzY3JvbGxJbmRpY2F0b3IgZWxlbWVudMKgCsKgIMKgIMKgIMKgIGNvbnN0IHBlcmNlbnRhZ2UgPcKgwqAKwqAgwqAgwqAgwqAgwqAgwqAgKCh3aW5kb3cuc2Nyb2xsWSkgLyBtYXhIZWlnaHQpICogMTAwO8KgCgoKwqAgwqAgwqAgwqAgLy8gUGl4ZWxzIHNjcm9sbGVkIGJ5IHRoZSB1c2VywqDCoArCoCDCoCDCoCDCoCAvLyB0byB0b3RhbCBzY3JvbGxhYmxlIFBpeGVsc8KgCsKgIMKgIMKgIMKgIHNjcm9sbEluZGljYXRvckVsdC5zdHlsZS53aWR0aMKgCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPSBwZXJjZW50YWdlICsgJyUnO8KgCsKgIMKgIH3CoAo8L3NjcmlwdD4mbmJzcDsKPHNjcmlwdD4KwqAKwqBmdW5jdGlvbiBhbGFsZXJ0KCl7CsKgIGFsZXJ0KCdIZWxsbyAmIFdlbGNvbWUgdG8gdGhlIHRoaXMgUHZ0UHByIFtwcsSrdml0IHDEgXDJmXJdLlxuXG5QdnRQcHIgaXMgYnJvdWdodCB0byB5b3UgYnkgM0csIDNEICYgRS1ULlxuXG5UaGlzIGlzIGhvYXN0ZWQgYnkgZXhwZXJpbWVudGFsIHRlY2hub2xvZ3kgaW4gaGFzaGxpbmtzIHRvIHN0b3JlIGFsbCBvZiB0aGUgY29kZSArIHRleHQgZGlyZWN0bHkgaW50byB0aGUgbGluay5cblxuU2VydmVycy9Ob2RlcyBhcmUgdXNlZCBmb3IgZGVjcnl0aW5nIHRoZSBoYXNobGluayBmb3IgdGhlIGJyb3dzZXIgdG8gZGlzcGxheSB0aGUgaW50ZXJuYWwgaW5mb3JtYXRpb24gYnV0IHRoZXkgY2FuIGJlIGRlY3J5cHRlZCB3aXRob3V0IHNlcnZlcnMuXG5cblxuVGhhbmsgeW91LlxuwqAgwqAgwqBbTFMwelJBOjpKQU4xNjIwMjBdXG5cbsKgIMKgIMKgTGFzdCBVcGRhdGUgW0FQUjA3MjAyMjo6TFMwelJBXScpOwrCoH0KwqBmdW5jdGlvbiBBbGVydENoZWNrKCkgewrCoCBhbGVydCgiWW91IGNsaWNrZWQgb24gYW4gZWFzdGVyIGVnZy5cblxuVGhpcyBQdnRQcHIgd2FzIG1hZGUgd2l0aCB0aGUgUHZ0UHByIEdlbmVyYXRvciAoUFBHZW4pLiBUaGlzIGlzIGEgbmV3c3BhcGVyIHN5c3RlbSB3aXRoIGV2ZXJ5b25lIGluIG1pbmQuIEFueW9uZSBjYW4gdXNlIG91ciBnZW5lcmF0b3JzIHRvIGJ1aWxkIHRoZWlyIG93biBwcml2YXRlIHBhcGVyIChQdnRQcHIpIHdpdGggYWxsIHRoZSBkYXRhIHN0b3JlZCBpbiB0aGUgbGluayBpbnN0ZWFkIG9mIGEgc2VydmVyLlxuXG5cblxuVGhhbmsgWW91XG7CoCDCoCDCoFtMUzB6UkE6OkZFQjE4MjAyMF1cblxuwqAgwqAgwqBMYXN0IFVwZGF0ZSBbQVBSMDcyMDIyOjpMUzB6UkFdIik7CsKgfQrCoAo8L3NjcmlwdD4KPG1ldGEgbmFtZT0iYWlydGltZS1wbGF0Zm9ybS1kaXNwbGF5IiBjb250ZW50PSIiPjxtZXRhIG5hbWU9ImFpcnRpbWUtcGxhdGZvcm0taWQiIGNvbnRlbnQ9IiI+PHNjcmlwdCBzcmM9Imh0dHBzOi8vYml0dHViZWFwcC5jb20vdHViZXBheS9haXJ0aW1lLmxvYWRlci5qcyIgZGF0YS12ZXJpZnk9Im1ldGEiIGRhdGEtYXV0b3N0YXJ0PSJ0cnVlIj48L3NjcmlwdD48L2E+
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
104.198.61.223 Council Bluffs, United States, ASN15169 (GOOGLE, US),
Reverse DNS
223.61.198.104.bc.googleusercontent.com
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

accept-language
se-SE,se;q=0.9
Referer
User-Agent
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.5563.146 Safari/537.36

Response headers

date
Tue, 04 Apr 2023 17:19:56 GMT
airtime.loader.js
bittubeapp.com/tubepay/ Frame 977F
0
0

Failed requests

These URLs were requested, but there was no response received. You will also see them in the list above.

Domain
bittubeapp.com
URL
https://bittubeapp.com/tubepay/airtime.loader.js

Verdicts & Comments Add Verdict or Comment

12 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| 0 boolean| credentialless function| hash function| gtag object| dataLayer string| scriptDomain object| bitty function| showLoader function| el object| e object| LZMA_WORKER object| LZMA

0 Cookies

3 Console Messages

Source Level URL
Text
security warning URL: https://itty.bitty.site/index.js(Line 32)
Message:
An iframe which has both allow-scripts and allow-same-origin for its sandbox attribute can remove its sandboxing.
network error URL: https://unpkg.com/embeddable-nfts/dist/nft-card.min.js
Message:
Failed to load resource: the server responded with a status of 520 ()
network error URL: https://zxing.org/w/chart?cht=qr&chs=115x115&chld=H|1&choe=UTF-8&chl=https://twitter.com/Z0M8I3D
Message:
Failed to load resource: the server responded with a status of 400 ()

Security Headers

This page lists any security headers set by the main page. If you want to understand what these mean and how to use them, head on over to this page

Header Value
Strict-Transport-Security max-age=31536000