URL: https://scape.run/
Submission: On November 09 via api from US — Scanned from DE

Summary

This website contacted 8 IPs in 3 countries across 6 domains to perform 41 HTTP transactions. The main IP is 31.43.161.6, located in Kyiv, Ukraine and belongs to AMAZON-02, US. The main domain is scape.run.
TLS certificate: Issued by ZeroSSL ECC Domain Secure Site CA on November 8th 2024. Valid for: 3 months.
This is the only time scape.run was scanned on urlscan.io!

urlscan.io Verdict: No classification

Domain & IP information

IP Address AS Autonomous System
1 31.43.161.6 16509 (AMAZON-02)
13 2600:9000:272... 16509 (AMAZON-02)
2 3.160.150.29 16509 (AMAZON-02)
3 3 140.82.121.4 36459 (GITHUB)
4 16.15.192.161 14618 (AMAZON-AES)
18 172.67.74.194 13335 (CLOUDFLAR...)
2 2 2600:9000:276... 16509 (AMAZON-02)
3 18.173.205.72 16509 (AMAZON-02)
41 8
Apex Domain
Subdomains
Transfer
18 skypack.dev
cdn.skypack.dev — Cisco Umbrella Rank: 40256
515 KB
16 framerusercontent.com
framerusercontent.com — Cisco Umbrella Rank: 26990
402 KB
4 amazonaws.com
github-production-user-asset-6210df.s3.amazonaws.com — Cisco Umbrella Rank: 94975
4 framer.com
events.framer.com — Cisco Umbrella Rank: 37544
framer.com — Cisco Umbrella Rank: 35418
8 KB
3 github.com
gist.github.com — Cisco Umbrella Rank: 58070
14 KB
1 scape.run
scape.run
48 KB
41 6
Domain Requested by
18 cdn.skypack.dev scape.run
16 framerusercontent.com scape.run
4 github-production-user-asset-6210df.s3.amazonaws.com scape.run
3 gist.github.com 3 redirects
2 framer.com 2 redirects
2 events.framer.com scape.run
events.framer.com
1 scape.run
41 7

This site contains no links.

Subject Issuer Validity Valid
scape.run
ZeroSSL ECC Domain Secure Site CA
2024-11-08 -
2025-02-06
3 months crt.sh
framerusercontent.com
Amazon RSA 2048 M02
2023-12-18 -
2025-01-14
a year crt.sh
events.framer.com
Amazon RSA 2048 M03
2024-04-09 -
2025-05-07
a year crt.sh
skypack.dev
WE1
2024-09-23 -
2024-12-22
3 months crt.sh
*.s3.amazonaws.com
Amazon RSA 2048 M01
2024-04-22 -
2025-04-07
a year crt.sh

This page contains 2 frames:

Primary Page: https://scape.run/
Frame ID: CB788C8DA23055951EED00DAF8857D35
Requests: 24 HTTP requests in this frame

Frame: data://truncated
Frame ID: 1E1FEADA448149AF21817215BC0D00C2
Requests: 19 HTTP requests in this frame

Screenshot

Page Title

Scape

Detected technologies

Overall confidence: 100%
Detected patterns
  • three(?:\.min)?\.js

Page Statistics

41
Requests

88 %
HTTPS

25 %
IPv6

6
Domains

7
Subdomains

8
IPs

3
Countries

1050 kB
Transfer

7768 kB
Size

0
Cookies

Redirected requests

There were HTTP redirect chains for the following requests:

Request Chain 16
  • https://gist.github.com/user-attachments/assets/fe829675-5b14-4d48-a3b4-99e66fc2a44d HTTP 302
  • https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20241109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241109T093935Z&X-Amz-Expires=300&X-Amz-Signature=b8f64f515b63f0e9b7a95f7b5c242d3fbdb8a1270a9ae3a958c82367f6550615&X-Amz-SignedHeaders=host
Request Chain 17
  • https://gist.github.com/user-attachments/assets/fe829675-5b14-4d48-a3b4-99e66fc2a44d HTTP 302
  • https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20241109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241109T093935Z&X-Amz-Expires=300&X-Amz-Signature=b8f64f515b63f0e9b7a95f7b5c242d3fbdb8a1270a9ae3a958c82367f6550615&X-Amz-SignedHeaders=host
Request Chain 18
  • https://gist.github.com/user-attachments/assets/fe829675-5b14-4d48-a3b4-99e66fc2a44d HTTP 302
  • https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20241109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241109T093935Z&X-Amz-Expires=300&X-Amz-Signature=b8f64f515b63f0e9b7a95f7b5c242d3fbdb8a1270a9ae3a958c82367f6550615&X-Amz-SignedHeaders=host
Request Chain 38
  • https://framer.com/m/hero-icons/Inbox.js@0.0.28 HTTP 302
  • https://framerusercontent.com/modules/IWXtAlJLSCPAcf5IIbsK/7Kg7IfwHMnr3j7dph79E/Inbox.js
Request Chain 39
  • https://framer.com/m/hero-icons/Check.js@0.0.28 HTTP 302
  • https://framerusercontent.com/modules/Tef4LcJps4TmCvtoenDW/ghEL3uDTIn7Rw2jCdjNr/Check.js

41 HTTP transactions

Resource
Path
Size
x-fer
Type
MIME-Type
Primary Request /
scape.run/
342 KB
48 KB
Document
General
Full URL
https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
31.43.161.6 Kyiv, Ukraine, ASN16509 (AMAZON-02, US),
Reverse DNS
sites.framer.app
Software
Framer/398c04b /
Resource Hash
f50a1ca8fb223a2bb43f2ddc142ef98c715f44ad2a4b0c58c57733f7c6fa8bd6
Security Headers
Name Value
Strict-Transport-Security max-age=31536000

Request headers

Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36

Response headers

alt-svc
h3=":443"; ma=2592000
cache-control
public, max-age=0, must-revalidate
content-encoding
br
content-length
48762
content-type
text/html
date
Sat, 09 Nov 2024 09:39:34 GMT
etag
"3b998de44c338edcbb4d7c3062292eef"
last-modified
Sat, 09 Nov 2024 08:16:31 GMT
link
<https://framerusercontent.com>; rel="preconnect", <https://framerusercontent.com>; rel="preconnect"; crossorigin=""
server
Framer/398c04b
server-timing
region;desc="eu-west-1", cache;desc="not-cached", ssg-status;desc="optimized", version;desc="398c04b"
strict-transport-security
max-age=31536000
vary
Accept-Encoding
chunk-MTN6QN72.mjs
framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/
643 KB
182 KB
Script
General
Full URL
https://framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/chunk-MTN6QN72.mjs
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
CloudFront /
Resource Hash
dbda85465ee1fe36568f873720b62e55f891fa287a7f77715e2dce8e65550056
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
https://scape.run
Referer
https://scape.run/

Response headers

access-control-max-age
0
content-encoding
br
etag
W/"3a05f4246ccb6df508231f8687317a22"
x-amz-version-id
cNr6NkkVe7nZKj5ZJTycwUO.z8juxAFQ
access-control-allow-methods
GET
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Miss from cloudfront
x-amz-cf-id
cwUIxjlqdMe-3paGbBrx4T3uWl5zlyyzIk_2bkZVeQRo117Zlf2kVg==
date
Sat, 09 Nov 2024 09:39:36 GMT
content-type
text/javascript
last-modified
Sat, 09 Nov 2024 08:16:30 GMT
vary
Accept-Encoding,Origin
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
x-amz-replication-status
COMPLETED
server-timing
cdn-upstream-layer;desc="REC",cdn-upstream-dns;dur=0,cdn-upstream-connect;dur=275,cdn-upstream-fbl;dur=464,cdn-cache-miss,cdn-pop;desc="FRA56-P12",cdn-rid;desc="cwUIxjlqdMe-3paGbBrx4T3uWl5zlyyzIk_2bkZVeQRo117Zlf2kVg==",cdn-downstream-fbl;dur=485
cache-control
public, max-age=31536000, immutable
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
referrer-policy
strict-origin-when-cross-origin
via
1.1 8c1c3a8ed856f5c19ce3b4158bff94a8.cloudfront.net (CloudFront)
access-control-allow-origin
*
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
server
CloudFront
x-amz-server-side-encryption
AES256
chunk-JR5VT52U.mjs
framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/
1 KB
2 KB
Script
General
Full URL
https://framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/chunk-JR5VT52U.mjs
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
CloudFront /
Resource Hash
8b91ee4af78a9558d2bbbc889b190d7c47647405fabc8ae5be1c014d6c938228
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
https://scape.run
Referer
https://scape.run/

Response headers

access-control-max-age
0
content-encoding
br
etag
W/"8dc2caa5dfa40c0964a44a081b0b17d9"
x-amz-version-id
CFQANYgIO_Ke0X_XFBIx0KzDvrWUX.dk
access-control-allow-methods
GET
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Miss from cloudfront
x-amz-cf-id
CYL7jhYumgFYpxfk-LMOZk5lSyjl4U53AJnMDicCfE8lPbWv9Z1qXA==
date
Sat, 09 Nov 2024 09:39:36 GMT
content-type
text/javascript
last-modified
Sat, 09 Nov 2024 08:16:30 GMT
vary
Accept-Encoding,Origin
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
x-amz-replication-status
COMPLETED
server-timing
cdn-upstream-layer;desc="REC",cdn-upstream-dns;dur=0,cdn-upstream-connect;dur=274,cdn-upstream-fbl;dur=441,cdn-cache-miss,cdn-pop;desc="FRA56-P12",cdn-rid;desc="CYL7jhYumgFYpxfk-LMOZk5lSyjl4U53AJnMDicCfE8lPbWv9Z1qXA==",cdn-downstream-fbl;dur=462
cache-control
public, max-age=31536000, immutable
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
referrer-policy
strict-origin-when-cross-origin
via
1.1 8c1c3a8ed856f5c19ce3b4158bff94a8.cloudfront.net (CloudFront)
access-control-allow-origin
*
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
server
CloudFront
x-amz-server-side-encryption
AES256
chunk-RIUMFBNJ.mjs
framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/
447 B
1 KB
Script
General
Full URL
https://framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/chunk-RIUMFBNJ.mjs
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
CloudFront /
Resource Hash
a9428e5e5f6c5ede3339114a8be6230e2cc39a2190d03f1092ae93bdaf556891
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
https://scape.run
Referer
https://scape.run/

Response headers

access-control-max-age
0
etag
"30ed32fa3444df726bb60d89113cf478"
x-amz-version-id
Rt3uu6eNd0FjwVDkvae3.LK3a1rg7a_4
age
80582
access-control-allow-methods
GET
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Hit from cloudfront
x-amz-cf-id
WRHtZvVrf4_Q21mRjVUJMcj7xtfNd-9Z8ZDdjM1bG-LpQBp9flxV2w==
date
Fri, 08 Nov 2024 11:16:34 GMT
content-type
text/javascript
last-modified
Fri, 08 Nov 2024 08:53:46 GMT
vary
Origin
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
x-amz-replication-status
COMPLETED
server-timing
cdn-cache-hit,cdn-pop;desc="FRA56-P12",cdn-rid;desc="WRHtZvVrf4_Q21mRjVUJMcj7xtfNd-9Z8ZDdjM1bG-LpQBp9flxV2w==",cdn-hit-layer;desc="REC",cdn-downstream-fbl;dur=8
cache-control
public, max-age=31536000, immutable
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
referrer-policy
strict-origin-when-cross-origin
via
1.1 8c1c3a8ed856f5c19ce3b4158bff94a8.cloudfront.net (CloudFront)
accept-ranges
bytes
access-control-allow-origin
*
content-length
447
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
server
CloudFront
x-amz-server-side-encryption
AES256
UC9eBsVae6qX_AYaEMDZiR9U1qoAG15WBOwxsGA0dp8.QUJQBFXU.mjs
framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/
262 KB
42 KB
Script
General
Full URL
https://framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/UC9eBsVae6qX_AYaEMDZiR9U1qoAG15WBOwxsGA0dp8.QUJQBFXU.mjs
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
CloudFront /
Resource Hash
1787bf9c24e8e496124b6dcc1f82c49e7355dc65c4ba39accde878811156ed3e
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
https://scape.run
Referer
https://scape.run/

Response headers

access-control-max-age
0
content-encoding
br
etag
W/"940c5839f855cf54bd2474da43acd86d"
x-amz-version-id
fWebU.HexLfq8tNWwoHFdIzCpq4jTeoQ
access-control-allow-methods
GET
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Miss from cloudfront
x-amz-cf-id
Op8xpFXvlECjqA9kIP_293Ux3ooCjY9mHBfZiAUNeDlWknRe3Zkvhg==
date
Sat, 09 Nov 2024 09:39:36 GMT
content-type
text/javascript
last-modified
Sat, 09 Nov 2024 08:16:30 GMT
vary
Accept-Encoding,Origin
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
x-amz-replication-status
COMPLETED
server-timing
cdn-upstream-layer;desc="REC",cdn-upstream-dns;dur=0,cdn-upstream-connect;dur=273,cdn-upstream-fbl;dur=500,cdn-cache-miss,cdn-pop;desc="FRA56-P12",cdn-rid;desc="Op8xpFXvlECjqA9kIP_293Ux3ooCjY9mHBfZiAUNeDlWknRe3Zkvhg==",cdn-downstream-fbl;dur=521
cache-control
public, max-age=31536000, immutable
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
referrer-policy
strict-origin-when-cross-origin
via
1.1 8c1c3a8ed856f5c19ce3b4158bff94a8.cloudfront.net (CloudFront)
access-control-allow-origin
*
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
server
CloudFront
x-amz-server-side-encryption
AES256
chunk-LHO4WRAK.mjs
framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/
768 B
2 KB
Script
General
Full URL
https://framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/chunk-LHO4WRAK.mjs
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
CloudFront /
Resource Hash
2a0b79e9265bf97c172ade9f9e64632daf16da49c5111031c1e6fceac529b757
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
https://scape.run
Referer
https://scape.run/

Response headers

access-control-max-age
0
etag
"be4bd4556c7c751f5376ffe96e6dbbc2"
x-amz-version-id
z6C9Uk5EgXmeCaV26XBiYh18XGmP1wEl
access-control-allow-methods
GET
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Miss from cloudfront
x-amz-cf-id
GtT4kaKB25-3LY6smU3oxTVZqnWBFvP-voXRTf1y-YHB6Q0Uo3xlVg==
date
Sat, 09 Nov 2024 09:39:36 GMT
content-type
text/javascript
last-modified
Sat, 09 Nov 2024 08:16:30 GMT
vary
Origin
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
x-amz-replication-status
COMPLETED
server-timing
cdn-upstream-layer;desc="REC",cdn-upstream-dns;dur=0,cdn-upstream-connect;dur=273,cdn-upstream-fbl;dur=427,cdn-cache-miss,cdn-pop;desc="FRA56-P12",cdn-rid;desc="GtT4kaKB25-3LY6smU3oxTVZqnWBFvP-voXRTf1y-YHB6Q0Uo3xlVg==",cdn-downstream-fbl;dur=452
cache-control
public, max-age=31536000, immutable
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
referrer-policy
strict-origin-when-cross-origin
via
1.1 8c1c3a8ed856f5c19ce3b4158bff94a8.cloudfront.net (CloudFront)
accept-ranges
bytes
access-control-allow-origin
*
content-length
768
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
server
CloudFront
x-amz-server-side-encryption
AES256
chunk-LKVSKQB3.mjs
framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/
347 B
1 KB
Script
General
Full URL
https://framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/chunk-LKVSKQB3.mjs
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
CloudFront /
Resource Hash
3ca38a1545d7f43176ad4a073977931be5cc8b17d80fd630f7bd43340ff68458
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
https://scape.run
Referer
https://scape.run/

Response headers

access-control-max-age
0
etag
"24fa76d2354eb97554f51f2bcf4a022a"
x-amz-version-id
Q01wIB5Y_1ojicpPImmuV4wtnAT3dZq0
access-control-allow-methods
GET
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Miss from cloudfront
x-amz-cf-id
PKcTPE1gn1w7Xp3hZ1FskXvou_EFaUKVrSFNHLXwf5Tch85dqWz2wg==
date
Sat, 09 Nov 2024 09:39:36 GMT
content-type
text/javascript
last-modified
Sat, 09 Nov 2024 08:16:30 GMT
vary
Origin
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
x-amz-replication-status
COMPLETED
server-timing
cdn-upstream-layer;desc="REC",cdn-upstream-dns;dur=0,cdn-upstream-connect;dur=279,cdn-upstream-fbl;dur=412,cdn-cache-miss,cdn-pop;desc="FRA56-P12",cdn-rid;desc="PKcTPE1gn1w7Xp3hZ1FskXvou_EFaUKVrSFNHLXwf5Tch85dqWz2wg==",cdn-downstream-fbl;dur=430
cache-control
public, max-age=31536000, immutable
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
referrer-policy
strict-origin-when-cross-origin
via
1.1 8c1c3a8ed856f5c19ce3b4158bff94a8.cloudfront.net (CloudFront)
accept-ranges
bytes
access-control-allow-origin
*
content-length
347
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
server
CloudFront
x-amz-server-side-encryption
AES256
chunk-44SPLE2T.mjs
framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/
47 KB
14 KB
Script
General
Full URL
https://framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/chunk-44SPLE2T.mjs
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
CloudFront /
Resource Hash
1d1b06f56d00a86ad73c7efb6bafe888acc86895f4f53deeac02f9c8036509c8
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
https://scape.run
Referer
https://scape.run/

Response headers

access-control-max-age
0
content-encoding
br
etag
W/"123db88e9abf5936a6d578613f6f269d"
x-amz-version-id
JDkHVnM7Z6157712_1iWc5I4OAiEl7IN
access-control-allow-methods
GET
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Miss from cloudfront
x-amz-cf-id
_2YygKWPdDgzSO1Zh7i_hf8IkeBdryYfNItTcuUuMH9y9QXL531ETg==
date
Sat, 09 Nov 2024 09:39:36 GMT
content-type
text/javascript
last-modified
Sat, 09 Nov 2024 08:16:30 GMT
vary
Accept-Encoding,Origin
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
x-amz-replication-status
COMPLETED
server-timing
cdn-upstream-layer;desc="REC",cdn-upstream-dns;dur=0,cdn-upstream-connect;dur=275,cdn-upstream-fbl;dur=421,cdn-cache-miss,cdn-pop;desc="FRA56-P12",cdn-rid;desc="_2YygKWPdDgzSO1Zh7i_hf8IkeBdryYfNItTcuUuMH9y9QXL531ETg==",cdn-downstream-fbl;dur=448
cache-control
public, max-age=31536000, immutable
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
referrer-policy
strict-origin-when-cross-origin
via
1.1 8c1c3a8ed856f5c19ce3b4158bff94a8.cloudfront.net (CloudFront)
access-control-allow-origin
*
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
server
CloudFront
x-amz-server-side-encryption
AES256
script_main.SL3NV4K3.mjs
framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/
3 KB
2 KB
Script
General
Full URL
https://framerusercontent.com/sites/n5MNnlXXJT4839Fajss7U/script_main.SL3NV4K3.mjs
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
CloudFront /
Resource Hash
c4370914a15f3a5281093ecde704428f2138d26847c51e6d05500eadf6cbe224
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
https://scape.run
Referer
https://scape.run/

Response headers

access-control-max-age
0
content-encoding
br
etag
W/"8b0e4ba54e86a0b9e71da0848566927d"
x-amz-version-id
mrlSahP8DHHlYIctsiFQB6UQ0BtUQInO
access-control-allow-methods
GET
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Miss from cloudfront
x-amz-cf-id
P801eUZ4O3Z4aegQZxBvjrxoLCDIGsihpHnJcip-70EXhjRHfTQ_oQ==
date
Sat, 09 Nov 2024 09:39:36 GMT
content-type
text/javascript
last-modified
Sat, 09 Nov 2024 08:16:30 GMT
vary
Accept-Encoding,Origin
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
x-amz-replication-status
COMPLETED
server-timing
cdn-upstream-layer;desc="REC",cdn-upstream-dns;dur=0,cdn-upstream-connect;dur=272,cdn-upstream-fbl;dur=396,cdn-cache-miss,cdn-pop;desc="FRA56-P12",cdn-rid;desc="P801eUZ4O3Z4aegQZxBvjrxoLCDIGsihpHnJcip-70EXhjRHfTQ_oQ==",cdn-downstream-fbl;dur=417
cache-control
public, max-age=31536000, immutable
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
referrer-policy
strict-origin-when-cross-origin
via
1.1 8c1c3a8ed856f5c19ce3b4158bff94a8.cloudfront.net (CloudFront)
access-control-allow-origin
*
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
server
CloudFront
x-amz-server-side-encryption
AES256
script
events.framer.com/
18 KB
7 KB
Script
General
Full URL
https://events.framer.com/script
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
3.160.150.29 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
server-3-160-150-29.fra60.r.cloudfront.net
Software
/
Resource Hash
89e61318afc569842f98ccd196ff7cfbb36ec69bad3af935dd5c7149b494fde4
Security Headers
Name Value
Strict-Transport-Security max-age=63072000; includeSubDomains; preload

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Referer
https://scape.run/

Response headers

strict-transport-security
max-age=63072000; includeSubDomains; preload
x-amzn-remapped-content-length
18177
timestamp
Sat, 09 Nov 2024 09:37:24 GMT
content-encoding
gzip
x-amz-apigw-id
A-QZsEb7IAMEWlQ=
x-amzn-trace-id
Root=1-672f2dd7-1a3c33b447053cbe45afbd6e
x-amzn-requestid
b964cad0-ba0f-49ef-8bc4-bd741b952262
via
1.1 f14a77f80eb66aa455bd94a07a2a0c64.cloudfront.net (CloudFront)
x-cache
Miss from cloudfront
content-length
6204
x-amz-cf-id
DP97SeexvFZsYGopvkcYSth3-t_aFL299GYRvTfouc0aneRFNXLfQg==
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
text/javascript
x-amz-cf-pop
FRA60-P7
truncated
/ Frame 1E1F
78 KB
78 KB
Document
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
9cedd1d49863bff825819b8ccdd1360f577a6389aff28d250bdb1ae908497ded

Request headers

Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36

Response headers

Content-Type
text/html
5ILRvlYXf72kHSVHqpa3snGzjU.jpg
framerusercontent.com/images/
38 KB
39 KB
Image
General
Full URL
https://framerusercontent.com/images/5ILRvlYXf72kHSVHqpa3snGzjU.jpg
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
/
Resource Hash
826b486b648601b2b8e31e586d03ace4a4b10bae47bf90c13e3e237359cf9a7d
Security Headers
Name Value
Content-Security-Policy default-src 'none'; script-src 'none'; img-src 'self'; media-src 'self'; report-uri https://framer.report-uri.com/r/t/csp/enforce;
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Referer
https://scape.run/

Response headers

etag
"94cd4e5a1df73577862cd8011ab4d506"
age
2153539
x-content-type-options
nosniff
x-amzn-requestid
43cd1e7c-71f3-4411-a781-9d4d1449d24f
alt-svc
h3=":443"; ma=86400
x-cache
Hit from cloudfront
x-amz-cf-id
q2HQEO9AhxRKpG6rFPSYDxp0mAcwoxjKLmY8ho-4xv3hVO7BqT7Fxg==
date
Tue, 15 Oct 2024 11:27:16 GMT
content-type
image/avif
vary
Accept
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
content-security-policy
default-src 'none'; script-src 'none'; img-src 'self'; media-src 'self'; report-uri https://framer.report-uri.com/r/t/csp/enforce;
cache-control
public, max-age=31536000, stale-while-revalidate=31536000
timing-allow-origin
*
server-timing
cdn-cache-hit,cdn-pop;desc="FRA56-P12",cdn-rid;desc="q2HQEO9AhxRKpG6rFPSYDxp0mAcwoxjKLmY8ho-4xv3hVO7BqT7Fxg==",cdn-hit-layer;desc="EDGE",cdn-downstream-fbl;dur=2
cross-origin-resource-policy
cross-origin
x-amzn-trace-id
Root=1-670e5190-100be5e65efed10427d6c4d4;Parent=59fbd54801b905f5;Sampled=0;Lineage=1:f456f256:0
referrer-policy
strict-origin-when-cross-origin
via
1.1 b44afb2a44376871c20edb8c123ed47c.cloudfront.net (CloudFront)
access-control-allow-origin
*
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
truncated
/
562 B
0
Image
General
Full URL
data:truncated
Protocol
DATA
Server
-, , ASN (),
Reverse DNS
Software
/
Resource Hash
63248cceb0ec8666c0dfa3b855a8894d9a4c10c503e953ee0c21c8d725dda205

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Referer

Response headers

Content-Type
image/svg+xml
dHHUz45rhM2KCQpj9zttNVlibk.woff2
framerusercontent.com/assets/
27 KB
28 KB
Font
General
Full URL
https://framerusercontent.com/assets/dHHUz45rhM2KCQpj9zttNVlibk.woff2
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
CloudFront /
Resource Hash
7c9d8ff58cba151c3da4c7c4143852005561c5d4f29db86cb3e503752b6ca92e
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
https://scape.run
Referer
https://scape.run/

Response headers

etag
"ae2f079ddb6d023fee6427ba1dae1156"
x-amz-version-id
W4gJvHjd8aHVxny791utha14y_4hERL.
age
9879023
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Hit from cloudfront
x-amz-cf-id
eB0EPpgWnxekGPiHhBYS-Gr7yL5yDpwNmdG1xRnPPNSO4JJBzQVcvg==
date
Thu, 18 Jul 2024 01:29:13 GMT
content-type
font/woff2
last-modified
Mon, 15 Jul 2024 14:15:44 GMT
x-amz-server-side-encryption-aws-kms-key-id
arn:aws:kms:us-east-1:946663360620:key/73540960-f9f6-40d6-b02a-3aa22f5f7459
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
x-amz-replication-status
COMPLETED
server-timing
cdn-cache-hit,cdn-pop;desc="FRA56-P12",cdn-rid;desc="eB0EPpgWnxekGPiHhBYS-Gr7yL5yDpwNmdG1xRnPPNSO4JJBzQVcvg==",cdn-hit-layer;desc="EDGE",cdn-downstream-fbl;dur=8
cache-control
public, max-age=31536000, immutable
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
referrer-policy
strict-origin-when-cross-origin
via
1.1 8c1c3a8ed856f5c19ce3b4158bff94a8.cloudfront.net (CloudFront)
accept-ranges
bytes
access-control-allow-origin
*
content-length
27648
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
server
CloudFront
x-amz-server-side-encryption
aws:kms
8yoV9pUxquX7VD7ZXlNYKQmkmk.woff2
framerusercontent.com/assets/
27 KB
28 KB
Font
General
Full URL
https://framerusercontent.com/assets/8yoV9pUxquX7VD7ZXlNYKQmkmk.woff2
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
CloudFront /
Resource Hash
43f3415724ac62a616e8f187ee0211fc6931db477515e14c09ccb903171f460f
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
https://scape.run
Referer
https://scape.run/

Response headers

etag
"5c927c9123c9017aff0df7aa5004c58b"
x-amz-version-id
zXNHmp2g2n_f_kLY3tC1xy8dX0ttenZk
age
9879023
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Hit from cloudfront
x-amz-cf-id
knGDqmOkZiY9Vinn3I1BcabywlD7ETxUnDQo57JR6aYdAEcobmdVNg==
date
Thu, 18 Jul 2024 01:29:12 GMT
content-type
font/woff2
last-modified
Mon, 15 Jul 2024 14:15:26 GMT
x-amz-server-side-encryption-aws-kms-key-id
arn:aws:kms:us-east-1:946663360620:key/73540960-f9f6-40d6-b02a-3aa22f5f7459
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
x-amz-replication-status
COMPLETED
server-timing
cdn-cache-hit,cdn-pop;desc="FRA56-P12",cdn-rid;desc="knGDqmOkZiY9Vinn3I1BcabywlD7ETxUnDQo57JR6aYdAEcobmdVNg==",cdn-hit-layer;desc="EDGE",cdn-downstream-fbl;dur=8
cache-control
public, max-age=31536000, immutable
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
referrer-policy
strict-origin-when-cross-origin
via
1.1 8c1c3a8ed856f5c19ce3b4158bff94a8.cloudfront.net (CloudFront)
accept-ranges
bytes
access-control-allow-origin
*
content-length
27380
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
server
CloudFront
x-amz-server-side-encryption
aws:kms
vQyevYAyHtARFwPqUzQGpnDs.woff2
framerusercontent.com/assets/
27 KB
28 KB
Font
General
Full URL
https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
CloudFront /
Resource Hash
4107b11930c4eef1f6ae5a76d441562e6d21a601f1781f37fd085542cd87412b
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
https://scape.run
Referer
https://scape.run/

Response headers

access-control-max-age
3000
etag
"a14a424239fd9cb2e305f2243b1f6177"
x-amz-version-id
SH9la86RvjI0NEj8MqfrPHVtgDnLUhAV
age
10011046
access-control-allow-methods
GET, HEAD
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Hit from cloudfront
x-amz-cf-id
gNHf95DHaQXFl55pcucMwozfYTjX6fI4lXABuLpHARx6k0PxfdMCWA==
date
Tue, 16 Jul 2024 12:48:50 GMT
content-type
font/woff2
last-modified
Mon, 15 Jul 2024 14:12:38 GMT
x-amz-server-side-encryption-aws-kms-key-id
arn:aws:kms:us-east-1:946663360620:key/73540960-f9f6-40d6-b02a-3aa22f5f7459
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
x-amz-replication-status
COMPLETED
server-timing
cdn-cache-hit,cdn-pop;desc="FRA56-P12",cdn-rid;desc="gNHf95DHaQXFl55pcucMwozfYTjX6fI4lXABuLpHARx6k0PxfdMCWA==",cdn-hit-layer;desc="EDGE",cdn-downstream-fbl;dur=7
cache-control
public, max-age=31536000, immutable
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
referrer-policy
strict-origin-when-cross-origin
via
1.1 8c1c3a8ed856f5c19ce3b4158bff94a8.cloudfront.net (CloudFront)
accept-ranges
bytes
access-control-allow-origin
*
content-length
27404
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
server
CloudFront
x-amz-server-side-encryption
aws:kms
d3tHnaQIAeqiE5hGcRw4mmgWYU.woff2
framerusercontent.com/assets/
27 KB
28 KB
Font
General
Full URL
https://framerusercontent.com/assets/d3tHnaQIAeqiE5hGcRw4mmgWYU.woff2
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2600:9000:2724:ec00:d:ada1:a280:93a1 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
Software
CloudFront /
Resource Hash
2f1040eb66570b6eb6b943d10ca5d91fb8c6dddecac26fe8823627437291229b
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
https://scape.run
Referer
https://scape.run/

Response headers

access-control-max-age
3000
etag
"09d8599d35f089f72c73ae79fbb5ef01"
x-amz-version-id
Jqk28CePMLBR_fq.NPwvEQZgshRbiTlh
age
10011827
access-control-allow-methods
GET, HEAD
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Hit from cloudfront
x-amz-cf-id
UFc06hqZNjZmM7l4PkU6jq-EojhKDnGc-7lDN-X9R2LuZgsYoXjffw==
date
Tue, 16 Jul 2024 12:35:49 GMT
content-type
font/woff2
last-modified
Mon, 15 Jul 2024 14:12:26 GMT
x-amz-server-side-encryption-aws-kms-key-id
arn:aws:kms:us-east-1:946663360620:key/73540960-f9f6-40d6-b02a-3aa22f5f7459
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
x-amz-replication-status
COMPLETED
server-timing
cdn-cache-hit,cdn-pop;desc="FRA56-P12",cdn-rid;desc="UFc06hqZNjZmM7l4PkU6jq-EojhKDnGc-7lDN-X9R2LuZgsYoXjffw==",cdn-hit-layer;desc="EDGE",cdn-downstream-fbl;dur=6
cache-control
public, max-age=31536000, immutable
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
referrer-policy
strict-origin-when-cross-origin
via
1.1 8c1c3a8ed856f5c19ce3b4158bff94a8.cloudfront.net (CloudFront)
accept-ranges
bytes
access-control-allow-origin
*
content-length
28032
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
server
CloudFront
x-amz-server-side-encryption
aws:kms
384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4
github-production-user-asset-6210df.s3.amazonaws.com/96381221/
Redirect Chain
  • https://gist.github.com/user-attachments/assets/fe829675-5b14-4d48-a3b4-99e66fc2a44d
  • https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F202...
4 MB
0
Media
General
Full URL
https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20241109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241109T093935Z&X-Amz-Expires=300&X-Amz-Signature=b8f64f515b63f0e9b7a95f7b5c242d3fbdb8a1270a9ae3a958c82367f6550615&X-Amz-SignedHeaders=host
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
HTTP/1.1
Server
16.15.192.161 , United States, ASN14618 (AMAZON-AES, US),
Reverse DNS
Software
AmazonS3 /
Resource Hash

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Referer
https://scape.run/

Response headers

x-amz-id-2
84nEnH8uRTriJKepZgLaFAPnSLcGblQhKHencz9XyiAlhT8V7izOTB+VIcDi/lboj9bauxkACoGTasjBByn2Igxw3Rdmspsa
Cache-Control
max-age=2592000
ETag
"120506daf8cc419ca3864e7cbf73a531"
Content-Range
bytes 0-5592266/5592267
x-amz-request-id
68TTMZYKNSS3FMT8
Accept-Ranges
bytes
Content-Length
5592267
Date
Sat, 09 Nov 2024 09:39:36 GMT
x-amz-meta-surrogate-control
max-age=31557600
Last-Modified
Sat, 09 Nov 2024 06:51:13 GMT
Content-Type
video/mp4
Server
AmazonS3
x-amz-server-side-encryption
AES256

Redirect headers

strict-transport-security
max-age=31536000; includeSubdomains; preload
content-security-policy
default-src 'none'; base-uri 'self'; child-src github.com/assets-cdn/worker/ github.com/webpack/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.com/assets-cdn/worker/ github.com/webpack/ github.com/assets/ gist.github.com/assets-cdn/worker/
cache-control
no-cache
location
https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20241109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241109T093935Z&X-Amz-Expires=300&X-Amz-Signature=b8f64f515b63f0e9b7a95f7b5c242d3fbdb8a1270a9ae3a958c82367f6550615&X-Amz-SignedHeaders=host
x-content-type-options
nosniff
referrer-policy
origin-when-cross-origin, strict-origin-when-cross-origin
x-github-request-id
AEC6:31549:124CC9D:12D0A0F:672F2DD7
content-length
0
date
Sat, 09 Nov 2024 09:39:35 GMT
x-xss-protection
0
content-type
text/html; charset=utf-8
vary
X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Encoding, Accept, X-Requested-With
server
GitHub.com
x-frame-options
deny
384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4
github-production-user-asset-6210df.s3.amazonaws.com/96381221/
Redirect Chain
  • https://gist.github.com/user-attachments/assets/fe829675-5b14-4d48-a3b4-99e66fc2a44d
  • https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F202...
16 KB
0
Media
General
Full URL
https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20241109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241109T093935Z&X-Amz-Expires=300&X-Amz-Signature=b8f64f515b63f0e9b7a95f7b5c242d3fbdb8a1270a9ae3a958c82367f6550615&X-Amz-SignedHeaders=host
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
HTTP/1.1
Server
16.15.192.161 , United States, ASN14618 (AMAZON-AES, US),
Reverse DNS
Software
AmazonS3 /
Resource Hash

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Referer
https://scape.run/

Response headers

x-amz-id-2
v2kGwkfkp8pGgY4Io95i15/AcIzFYDraO4x1utNp+yrfb9HuIV+NGusNGnFy/6U2zLF6SexdvsIaYHH6KSaC86AI5RNss98G
Cache-Control
max-age=2592000
ETag
"120506daf8cc419ca3864e7cbf73a531"
Content-Range
bytes 0-5592266/5592267
x-amz-request-id
T2D0MSTRWHT7T9GF
Accept-Ranges
bytes
Content-Length
5592267
Date
Sat, 09 Nov 2024 09:39:37 GMT
x-amz-meta-surrogate-control
max-age=31557600
Last-Modified
Sat, 09 Nov 2024 06:51:13 GMT
Content-Type
video/mp4
Server
AmazonS3
x-amz-server-side-encryption
AES256

Redirect headers

strict-transport-security
max-age=31536000; includeSubdomains; preload
content-security-policy
default-src 'none'; base-uri 'self'; child-src github.com/assets-cdn/worker/ github.com/webpack/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.com/assets-cdn/worker/ github.com/webpack/ github.com/assets/ gist.github.com/assets-cdn/worker/
cache-control
no-cache
location
https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20241109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241109T093935Z&X-Amz-Expires=300&X-Amz-Signature=b8f64f515b63f0e9b7a95f7b5c242d3fbdb8a1270a9ae3a958c82367f6550615&X-Amz-SignedHeaders=host
x-content-type-options
nosniff
referrer-policy
origin-when-cross-origin, strict-origin-when-cross-origin
x-github-request-id
AEC6:31549:124CD35:12D0AB4:672F2DD7
content-length
0
date
Sat, 09 Nov 2024 09:39:35 GMT
x-xss-protection
0
content-type
text/html; charset=utf-8
vary
X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Encoding, Accept, X-Requested-With
server
GitHub.com
x-frame-options
deny
384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4
github-production-user-asset-6210df.s3.amazonaws.com/96381221/
Redirect Chain
  • https://gist.github.com/user-attachments/assets/fe829675-5b14-4d48-a3b4-99e66fc2a44d
  • https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F202...
16 KB
0
Media
General
Full URL
https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20241109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241109T093935Z&X-Amz-Expires=300&X-Amz-Signature=b8f64f515b63f0e9b7a95f7b5c242d3fbdb8a1270a9ae3a958c82367f6550615&X-Amz-SignedHeaders=host
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
HTTP/1.1
Server
16.15.192.161 , United States, ASN14618 (AMAZON-AES, US),
Reverse DNS
Software
AmazonS3 /
Resource Hash

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Referer
https://scape.run/

Response headers

x-amz-id-2
AlXz4Z4FmoUG3OnqXV/hr6svFVakhj73UdLfyFEy2QFUq8it8UZU0e3Kzbr6mSS0laX57zLYiQ6CR+C6aCjokmam7N7DTc1+
Cache-Control
max-age=2592000
ETag
"120506daf8cc419ca3864e7cbf73a531"
Content-Range
bytes 0-5592266/5592267
x-amz-request-id
T2D4ZV9JASHNNY0Z
Accept-Ranges
bytes
Content-Length
5592267
Date
Sat, 09 Nov 2024 09:39:37 GMT
x-amz-meta-surrogate-control
max-age=31557600
Last-Modified
Sat, 09 Nov 2024 06:51:13 GMT
Content-Type
video/mp4
Server
AmazonS3
x-amz-server-side-encryption
AES256

Redirect headers

strict-transport-security
max-age=31536000; includeSubdomains; preload
content-security-policy
default-src 'none'; base-uri 'self'; child-src github.com/assets-cdn/worker/ github.com/webpack/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.com/assets-cdn/worker/ github.com/webpack/ github.com/assets/ gist.github.com/assets-cdn/worker/
cache-control
no-cache
location
https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20241109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241109T093935Z&X-Amz-Expires=300&X-Amz-Signature=b8f64f515b63f0e9b7a95f7b5c242d3fbdb8a1270a9ae3a958c82367f6550615&X-Amz-SignedHeaders=host
x-content-type-options
nosniff
referrer-policy
origin-when-cross-origin, strict-origin-when-cross-origin
x-github-request-id
AEC6:31549:124CD18:12D0A98:672F2DD7
content-length
0
date
Sat, 09 Nov 2024 09:39:35 GMT
x-xss-protection
0
content-type
text/html; charset=utf-8
vary
X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, Accept-Encoding, Accept, X-Requested-With
server
GitHub.com
x-frame-options
deny
react@18.0.2
cdn.skypack.dev/ Frame 1E1F
762 B
1 KB
Script
General
Full URL
https://cdn.skypack.dev/react@18.0.2
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
abb60c0ca31aab69e8b26906186e66d5e384cc9cf930f6c1b023d4ad2fccd9bd
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer

Response headers

x-pinned-url
/pin/react@v17.0.1-yH0aYV1FOvoIPeKBbHxg/mode=imports/optimized/react.js
access-control-expose-headers
X-Import-Status, X-Import-Url, X-Pinned-Url, Content-Length
content-encoding
br
cf-cache-status
REVALIDATED
etag
W/"2fa-/ssi+LP/dgWCJcjgK7+lLUDu+TU"
x-import-url
/-/react@v17.0.1-yH0aYV1FOvoIPeKBbHxg/dist=es2019,mode=imports/optimized/react.js
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=qJdElnXdK0awwLZo6lA0QQjHlqlmXdQpzxrBHW24bq6zQ6k5YX49jEd8tRwU7BinIOtZduVy0ckQXq212EMjlLh%2BAHYNZL7syu8UAaSngN9lwCtiW3MQdbmZK23g1fZ5Nw%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=36857&sent=443&recv=107&lost=0&retrans=0&sent_bytes=492730&recv_bytes=14246&delivery_rate=1771732&cwnd=180600&unsent_bytes=0&cid=540d207b13c993ee&ts=677&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
x-import-status
SUCCESS
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=300
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
MISS
cf-ray
8dfcd621ae2fe509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::frrfk-1730090382010-7132e9e59daa
react-dom@18.0.2
cdn.skypack.dev/ Frame 1E1F
802 B
1 KB
Script
General
Full URL
https://cdn.skypack.dev/react-dom@18.0.2
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
95901da21e67a1cd129f3e6842e9386537e745001d0686f1d32a01632185fd84
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer

Response headers

x-pinned-url
/pin/react-dom@v17.0.1-oZ1BXZ5opQ1DbTh7nu9r/mode=imports/optimized/react-dom.js
access-control-expose-headers
X-Import-Status, X-Import-Url, X-Pinned-Url, Content-Length
content-encoding
br
cf-cache-status
REVALIDATED
etag
W/"322-XXCFm7o8O+ZYmRZzYoOISFE0hlE"
x-import-url
/-/react-dom@v17.0.1-oZ1BXZ5opQ1DbTh7nu9r/dist=es2019,mode=imports/optimized/react-dom.js
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=xsNjlKDsOU72gzWnnlSEKj24ULN5plCi8lmuFGPHVgGqHQOSIuymnNJzqpoFmcXPSxNU%2BzBd6u3Al9TQL5htIkAk8icI1tR4sFh0YbowaZ2GbTWXH0NrXKzleSZ4T1dF1A%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=36560&sent=445&recv=108&lost=0&retrans=0&sent_bytes=494085&recv_bytes=14292&delivery_rate=30790&cwnd=180600&unsent_bytes=0&cid=540d207b13c993ee&ts=818&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:36 GMT
content-type
application/javascript; charset=utf-8
x-import-status
SUCCESS
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=300
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
MISS
cf-ray
8dfcd621ae31e509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::tvl4p-1731017538554-a7f72ebb3c54
three@0.148.0
cdn.skypack.dev/ Frame 1E1F
767 B
1 KB
Script
General
Full URL
https://cdn.skypack.dev/three@0.148.0
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
e34792a615372ec292a1e1c8b9d2e61b50befd39bb1f95ef23958886674fcc72
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer

Response headers

x-pinned-url
/pin/three@v0.148.0-ZdnPTf2EskNtHkVhjjpp/mode=imports/optimized/three.js
access-control-expose-headers
X-Import-Status, X-Import-Url, X-Pinned-Url, Content-Length
content-encoding
br
cf-cache-status
REVALIDATED
etag
W/"2ff-8gUfbd5XrIsvHC5YBqi8X2XhXWU"
x-import-url
/-/three@v0.148.0-ZdnPTf2EskNtHkVhjjpp/dist=es2019,mode=imports/optimized/three.js
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=jNe7D7IjmTmoOWdiGFI5xOTekghp5JoiDS6SWG4jl2zu60GET0l5pgZ3QGwQiyuPObtO1IJ1XY0qiG0nu0bOKRWAHwpBJL1mIPF1RJ%2Br0I4N2JWuAhVKtEYrQ6OOtV9XJA%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=38189&sent=264&recv=88&lost=0&retrans=0&sent_bytes=282715&recv_bytes=13076&delivery_rate=17594&cwnd=140400&unsent_bytes=0&cid=540d207b13c993ee&ts=498&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
x-import-status
SUCCESS
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=300
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
MISS
cf-ray
8dfcd621ae34e509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::d8pmt-1730090382035-7d7a1325eead
fiber@7.0.24
cdn.skypack.dev/@react-three/ Frame 1E1F
892 B
1 KB
Script
General
Full URL
https://cdn.skypack.dev/@react-three/fiber@7.0.24
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
fddcbebd6afcc401d8cc0dccb85ccadd403955594e9639c6d8fd88d6b40925f8
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer

Response headers

x-pinned-url
/pin/@react-three/fiber@v7.0.24-vvoyQRS5TsWga6gxNVzn/mode=imports/optimized/@react-three/fiber.js
access-control-expose-headers
X-Import-Status, X-Import-Url, X-Pinned-Url, Content-Length
content-encoding
br
cf-cache-status
REVALIDATED
etag
W/"37c-FMBxTJXlCzXJQHWY1M/uIH8Xm9M"
x-import-url
/-/@react-three/fiber@v7.0.24-vvoyQRS5TsWga6gxNVzn/dist=es2019,mode=imports/optimized/@react-three/fiber.js
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=cQefYct%2BoEY9nKvxQpkqe6TPPhLR8lq%2FQFCDkOrc8KF926spYOlhHgTQFT6L03McKSi8yJTcJJC0m%2Fc1oCyulnE9j5gX9bCS4X8%2BTJmc5DDKWDBoqRseTUpuN53jvRCJjg%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=35748&sent=11&recv=12&lost=0&retrans=0&sent_bytes=4269&recv_bytes=5163&delivery_rate=16900&cwnd=12000&unsent_bytes=0&cid=540d207b13c993ee&ts=103&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
x-import-status
SUCCESS
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=300
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
MISS
cf-ray
8dfcd621ae2be509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::pctzz-1730090382010-181e938f844f
anonymous
events.framer.com/
0
380 B
Ping
General
Full URL
https://events.framer.com/anonymous
Requested by
Host: events.framer.com
URL: https://events.framer.com/script
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
3.160.150.29 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
server-3-160-150-29.fra60.r.cloudfront.net
Software
/
Resource Hash
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Content-Type
text/plain;charset=UTF-8
Referer
https://scape.run/

Response headers

x-amz-apigw-id
A-QZvGfkoAMEt3Q=
x-amzn-trace-id
Root=1-672f2dd7-7d06755d25b9677152cfd67c;Parent=725b5757e3a89626;Sampled=0;Lineage=1:c457ad49:0
x-amzn-requestid
adc267a4-85b1-441c-827c-de943296e81b
via
1.1 f14a77f80eb66aa455bd94a07a2a0c64.cloudfront.net (CloudFront)
access-control-allow-origin
*
x-cache
Miss from cloudfront
content-length
0
x-amz-cf-id
sIh7Qm7y3VQ7vh-5qFQxZvvbJM455t6LADaaz1QOLPhvCnmsZKxeoQ==
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/json
x-amz-cf-pop
FRA60-P7
fiber.js
cdn.skypack.dev/-/@react-three/fiber@v7.0.24-vvoyQRS5TsWga6gxNVzn/dist=es2019,mode=imports/optimized/@react-three/ Frame 1E1F
51 KB
15 KB
Script
General
Full URL
https://cdn.skypack.dev/-/@react-three/fiber@v7.0.24-vvoyQRS5TsWga6gxNVzn/dist=es2019,mode=imports/optimized/@react-three/fiber.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
957bbdc476a890fc06075cb19676f3dc271889bdea4b68972d3731126efacc23
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/@react-three/fiber@7.0.24

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"cba5-EsaAePeNxLXYJrr+PP4R6x/7IHM"
age
127636
x-imports
/-/three@v0.136.0-4Px7Kx1INqCFBN0tXUQc/dist=es2019,mode=imports/optimized/three.js, /-/three@v0.136.0-4Px7Kx1INqCFBN0tXUQc/dist=es2019,mode=imports/optimized/three.js, /-/react@v17.0.1-yH0aYV1FOvoIPeKBbHxg/dist=es2019,mode=imports/optimized/react.js, /-/zustand@v3.6.9-Hj7BjHZ48uCc7bQfpPBh/dist=es2019,mode=imports/optimized/zustand.js, /-/react-reconciler@v0.26.2-e483gHrrFfSxXbOksdWf/dist=es2019,mode=imports/optimized/react-reconciler.js, /-/scheduler@v0.20.2-PAU9F1YosUNPKr7V4s0j/dist=es2019,mode=imports/optimized/scheduler.js, /-/use-asset@v1.0.4-6c93n0KgI4vTM2h8dKcs/dist=es2019,mode=imports/optimized/use-asset.js, /-/react-merge-refs@v1.1.0-Pppx5g5JkvARXGTGC25p/dist=es2019,mode=imports/optimized/react-merge-refs.js, /-/react-use-measure@v2.1.1-k3bLDuSByp1TyStJ6JGy/dist=es2019,mode=imports/optimized/react-use-measure.js
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=RI5t3kcwIRkNgQX2a4MrsRz2E9elYqq1bXGVsa4%2BSGxaWT6JlKOdWHJdzAi0UXG0h4WDTAr%2Bvk57sYe2eVZ9xmBzgj8P9bo827YYnE6KcxD56uWFkb%2BbMTTQMs7TmTo2Pw%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=41048&sent=14&recv=14&lost=0&retrans=0&sent_bytes=5729&recv_bytes=5595&delivery_rate=25057&cwnd=12000&unsent_bytes=0&cid=540d207b13c993ee&ts=152&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd62248ffe509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::vtp9w-1731017539048-ab748274e3ee
three.js
cdn.skypack.dev/-/three@v0.136.0-4Px7Kx1INqCFBN0tXUQc/dist=es2019,mode=imports/optimized/ Frame 1E1F
1 MB
197 KB
Script
General
Full URL
https://cdn.skypack.dev/-/three@v0.136.0-4Px7Kx1INqCFBN0tXUQc/dist=es2019,mode=imports/optimized/three.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
7ca4bd4f830b0bdf79cc6f94ebf93cb17e74802ef93ae9b6394da373e453542b
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/-/@react-three/fiber@v7.0.24-vvoyQRS5TsWga6gxNVzn/dist=es2019,mode=imports/optimized/@react-three/fiber.js

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"1073c1-sNS5xuKnxFRBCjQPaS7+wThkRmA"
age
1054793
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Q3%2BiA0u4FIe9zyXNnJdGXycZRVZ94uZ7%2Bp0JdoSQ16Pgt7e35PccU8byYuPJjEZ0WTJyOi5Fv1XjlvR0oGSIyKj5hBU8DBGKJEtsktx2PeVFqB4cIA2JnhvtNBebvYqZ6A%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=41585&sent=52&recv=30&lost=0&retrans=0&sent_bytes=43902&recv_bytes=9383&delivery_rate=93685&cwnd=22800&unsent_bytes=0&cid=540d207b13c993ee&ts=244&x=1", cfExtPri, cfHdrFlush;dur=25
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd622cb24e509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::bz9c9-1730090382582-f1adf97798b3
react.js
cdn.skypack.dev/-/react@v17.0.1-yH0aYV1FOvoIPeKBbHxg/dist=es2019,mode=imports/optimized/ Frame 1E1F
11 KB
4 KB
Script
General
Full URL
https://cdn.skypack.dev/-/react@v17.0.1-yH0aYV1FOvoIPeKBbHxg/dist=es2019,mode=imports/optimized/react.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
d67a56e0f98f9bd5b9b5ed0408ea913b2d3e14265979e457d905a795ac5f4b4b
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/-/@react-three/fiber@v7.0.24-vvoyQRS5TsWga6gxNVzn/dist=es2019,mode=imports/optimized/@react-three/fiber.js

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"2a0f-6+QDZpE20Blgz5WKl9fhsAeGs8o"
age
1054793
x-imports
/-/object-assign@v4.1.1-LbCnB3r2y2yFmhmiCfPn/dist=es2019,mode=imports/optimized/object-assign.js
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=KGNtw5suihg9VnLHMn1NtezCAdykFsO7iTiLAKgAebbnV%2FbqIeDJP9WqMMkNcsuMqd8vlFbv1i78sYaXvQKt1JMDYlgRwlsYsWyZHnPAXcx7so5XnAnPkHQJgM4oslEGzw%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=41585&sent=31&recv=30&lost=0&retrans=0&sent_bytes=21102&recv_bytes=9383&delivery_rate=93685&cwnd=22800&unsent_bytes=0&cid=540d207b13c993ee&ts=234&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd622cb26e509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::nc9md-1730090382569-e90295be8c9a
zustand.js
cdn.skypack.dev/-/zustand@v3.6.9-Hj7BjHZ48uCc7bQfpPBh/dist=es2019,mode=imports/optimized/ Frame 1E1F
4 KB
2 KB
Script
General
Full URL
https://cdn.skypack.dev/-/zustand@v3.6.9-Hj7BjHZ48uCc7bQfpPBh/dist=es2019,mode=imports/optimized/zustand.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
c3d14fbe8868ed06feb46d2fb64910acad0a7c94c750923bebbe1684ab485678
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/-/@react-three/fiber@v7.0.24-vvoyQRS5TsWga6gxNVzn/dist=es2019,mode=imports/optimized/@react-three/fiber.js

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"113b-KWZFOcx5M5WsieuFGWcqoaMucdM"
age
1054793
x-imports
/-/react@v17.0.1-yH0aYV1FOvoIPeKBbHxg/dist=es2019,mode=imports/optimized/react.js
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=o6Yz7x0IEnsaMwZL5vyxk%2FfK66F%2FRSFH%2BdkfQJNHi2swaqZLGM6AzbBD8gWpJni3kwf%2BWAwiVRfhVtTx5qg%2F4vA9oUr6jqvbf2Ar%2FW9DQSzA88XWyxJvlGP3mkpCwV0q3w%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=41585&sent=38&recv=30&lost=0&retrans=0&sent_bytes=28183&recv_bytes=9383&delivery_rate=93685&cwnd=22800&unsent_bytes=0&cid=540d207b13c993ee&ts=236&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd622cb29e509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::frrfk-1730090382607-fe585344c9fb
react-reconciler.js
cdn.skypack.dev/-/react-reconciler@v0.26.2-e483gHrrFfSxXbOksdWf/dist=es2019,mode=imports/optimized/ Frame 1E1F
148 KB
34 KB
Script
General
Full URL
https://cdn.skypack.dev/-/react-reconciler@v0.26.2-e483gHrrFfSxXbOksdWf/dist=es2019,mode=imports/optimized/react-reconciler.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
b2f1f0469e60943b237371194b711845dda30f5ae1a69b95576510ea31a6c577
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/-/@react-three/fiber@v7.0.24-vvoyQRS5TsWga6gxNVzn/dist=es2019,mode=imports/optimized/@react-three/fiber.js

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"24ef6-IuTmIR+HFHwx0HkTJOwlmGgGvOw"
age
1054793
x-imports
/-/object-assign@v4.1.1-LbCnB3r2y2yFmhmiCfPn/dist=es2019,mode=imports/optimized/object-assign.js, /-/react@v17.0.1-yH0aYV1FOvoIPeKBbHxg/dist=es2019,mode=imports/optimized/react.js, /-/scheduler@v0.20.2-PAU9F1YosUNPKr7V4s0j/dist=es2019,mode=imports/optimized/scheduler.js
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=atMtuQa5iiLIRVhgHWzws3Yqv3f3tgCyiWHVpd8tY7FkI4%2BsfugvXPFDRur%2FE%2F4NxCBjMK1IP8Rx7ZHY4kzSfCkoXIx%2B5D%2FkVvNTG9Ii7cRB%2Bd1WqGc%2FWmBEW%2Fg9HmN19A%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=41585&sent=43&recv=30&lost=0&retrans=0&sent_bytes=33895&recv_bytes=9383&delivery_rate=93685&cwnd=22800&unsent_bytes=0&cid=540d207b13c993ee&ts=240&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd622cb2ae509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::bnznf-1730090382634-dcf19e9142f1
scheduler.js
cdn.skypack.dev/-/scheduler@v0.20.2-PAU9F1YosUNPKr7V4s0j/dist=es2019,mode=imports/optimized/ Frame 1E1F
9 KB
3 KB
Script
General
Full URL
https://cdn.skypack.dev/-/scheduler@v0.20.2-PAU9F1YosUNPKr7V4s0j/dist=es2019,mode=imports/optimized/scheduler.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
1b2c4c48747275ea1fd255424ca897c88759557ba4f3ea06750a74dc4a40b078
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/-/@react-three/fiber@v7.0.24-vvoyQRS5TsWga6gxNVzn/dist=es2019,mode=imports/optimized/@react-three/fiber.js

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"2507-kdgZ90OWzk22cNBkjK4BlnCROLg"
age
1054793
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=0yL59Fo%2B6pqhplE4N5CtPSNiz7bnmBtHolUmLIXzcwhzlBKYBM1%2BwIMzLqgSDV%2F%2FiBX9pzSvw8g7YA2jkfbhamD7iWWbkki3uBhTEBDPKnmIAESu6rVdDDP8XS9HWaG4Xg%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=41585&sent=40&recv=30&lost=0&retrans=0&sent_bytes=30433&recv_bytes=9383&delivery_rate=93685&cwnd=22800&unsent_bytes=0&cid=540d207b13c993ee&ts=238&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd622cb2ee509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::755z5-1730090382584-2ec0a28c9f2d
use-asset.js
cdn.skypack.dev/-/use-asset@v1.0.4-6c93n0KgI4vTM2h8dKcs/dist=es2019,mode=imports/optimized/ Frame 1E1F
2 KB
2 KB
Script
General
Full URL
https://cdn.skypack.dev/-/use-asset@v1.0.4-6c93n0KgI4vTM2h8dKcs/dist=es2019,mode=imports/optimized/use-asset.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
94ddc06d88eb07050b81511d8664e32dc99cb5ff31fe74a65e893c0041f23e3b
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/-/@react-three/fiber@v7.0.24-vvoyQRS5TsWga6gxNVzn/dist=es2019,mode=imports/optimized/@react-three/fiber.js

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"8bb-d0vXo3bIvw6CQQdK3MsuYowovw8"
age
1054793
x-imports
/-/fast-deep-equal@v3.1.3-ysejKs1WDEDPxUJhgGoP/dist=es2019,mode=imports/optimized/fast-deep-equal.js
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=T%2FrWkUDVVa3JGmsvTtw%2BzLSWR4oJL5YF4TW7T1dSGXFc28yM8JZdZ%2BCyS7c7EkkLkiiz2UeylZ7c%2BMMRsxYfGMDL%2BHySF4oDeiqB%2FIFASfafYqYvXs6j87EnOpJxZOuiQg%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=41585&sent=36&recv=30&lost=0&retrans=0&sent_bytes=26525&recv_bytes=9383&delivery_rate=93685&cwnd=22800&unsent_bytes=0&cid=540d207b13c993ee&ts=236&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd622cb30e509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::755z5-1730090382606-3a83b79fbec1
react-merge-refs.js
cdn.skypack.dev/-/react-merge-refs@v1.1.0-Pppx5g5JkvARXGTGC25p/dist=es2019,mode=imports/optimized/ Frame 1E1F
256 B
937 B
Script
General
Full URL
https://cdn.skypack.dev/-/react-merge-refs@v1.1.0-Pppx5g5JkvARXGTGC25p/dist=es2019,mode=imports/optimized/react-merge-refs.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
63a94835370bd346dab17efd5af59d6e525b7bd4311d0c93a2b861340098b546
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/-/@react-three/fiber@v7.0.24-vvoyQRS5TsWga6gxNVzn/dist=es2019,mode=imports/optimized/@react-three/fiber.js

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"100-99WhMyiJlHWahNLxD77mPh+EAto"
age
1054793
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=K93cZVN1d1lh8qRjgwIRMyC11LJckMQLBPTUvKEfPZK30yS8rUBPmrqB%2B75%2Fng2Nv8UHq80DiUN8dvvoBS4pHtvEmZ1EbAH9LLr%2BgZNSvk4JeAnxb%2Bz6G5%2F9rERLBNiT%2Bw%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=41585&sent=35&recv=30&lost=0&retrans=0&sent_bytes=25565&recv_bytes=9383&delivery_rate=93685&cwnd=22800&unsent_bytes=0&cid=540d207b13c993ee&ts=235&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd622cb34e509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::frrfk-1730090382581-1e44223714b8
react-use-measure.js
cdn.skypack.dev/-/react-use-measure@v2.1.1-k3bLDuSByp1TyStJ6JGy/dist=es2019,mode=imports/optimized/ Frame 1E1F
5 KB
2 KB
Script
General
Full URL
https://cdn.skypack.dev/-/react-use-measure@v2.1.1-k3bLDuSByp1TyStJ6JGy/dist=es2019,mode=imports/optimized/react-use-measure.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
1fb9a0020472f1ed0d524f678b9ac073b8f90d28c5a452898fd3affbeafdae51
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/-/@react-three/fiber@v7.0.24-vvoyQRS5TsWga6gxNVzn/dist=es2019,mode=imports/optimized/@react-three/fiber.js

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"13bc-MZprclb6tMrzsVcYx524q/K6RgA"
age
179839
x-imports
/-/react@v17.0.1-yH0aYV1FOvoIPeKBbHxg/dist=es2019,mode=imports/optimized/react.js, /-/debounce@v1.2.1-nsljQIXDuyHmm6xBMrgd/dist=es2019,mode=imports/optimized/debounce.js
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=i2kuXLFPTP137i5f9lULTWaRd%2FhehXSPGAIu7dGNmKHSaRdcZbGwZqxG6sgj6nVVu4xPq34ue%2BbScLysijh236ABFOZ5eZhD3UUF59IAQ1YTwaBpeJpiHe4ek2z12e53NA%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=41585&sent=52&recv=30&lost=0&retrans=0&sent_bytes=43902&recv_bytes=9383&delivery_rate=93685&cwnd=22800&unsent_bytes=0&cid=540d207b13c993ee&ts=240&x=1", cfExtPri, cfHdrFlush;dur=29
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd622db38e509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::llxmj-1730965336692-012156687e50
object-assign.js
cdn.skypack.dev/-/object-assign@v4.1.1-LbCnB3r2y2yFmhmiCfPn/dist=es2019,mode=imports/optimized/ Frame 1E1F
2 KB
1 KB
Script
General
Full URL
https://cdn.skypack.dev/-/object-assign@v4.1.1-LbCnB3r2y2yFmhmiCfPn/dist=es2019,mode=imports/optimized/object-assign.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
d75198c87b0640a682645d8cfdbaa67b5dd4b71aec625582e65d05e87caba008
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/-/react@v17.0.1-yH0aYV1FOvoIPeKBbHxg/dist=es2019,mode=imports/optimized/react.js

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"726-iuFFEzaCYK4xCizpuYZd2k0EBeU"
age
127636
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=XQud%2FoXzIjuLCbKyTEw72iDDB9xcSt8XxFhtt8am1Uoxk0GotU91hRZL2yr7OwYZTIOiYu9SHnGdJZwn1mXWnhmZ6BSE1M1yaCuQvfs0nsK%2FS%2BsAga1I4uCXJM6BtBtuGA%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=44105&sent=94&recv=42&lost=0&retrans=0&sent_bytes=89525&recv_bytes=10651&delivery_rate=576018&cwnd=45600&unsent_bytes=0&cid=540d207b13c993ee&ts=290&x=1", cfExtPri, cfHdrFlush;dur=14
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd6231c85e509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::8g8ng-1731017539281-2de32783f447
fast-deep-equal.js
cdn.skypack.dev/-/fast-deep-equal@v3.1.3-ysejKs1WDEDPxUJhgGoP/dist=es2019,mode=imports/optimized/ Frame 1E1F
1 KB
1 KB
Script
General
Full URL
https://cdn.skypack.dev/-/fast-deep-equal@v3.1.3-ysejKs1WDEDPxUJhgGoP/dist=es2019,mode=imports/optimized/fast-deep-equal.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
5b2131fffdf17b15c87f57ee54804af57e4cd291a99efa3a07708a2d34fec7b7
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/-/use-asset@v1.0.4-6c93n0KgI4vTM2h8dKcs/dist=es2019,mode=imports/optimized/use-asset.js

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"48a-c/vyYL427pHn1QHDX/HA0y45Joc"
age
1054793
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=sLiDXq%2Ful76AV0QFQj4LaZrzWrIXavDRZynzc%2FRNQrwQK%2BRbV65l4iA2LVBCXQHz1IVLQXgAcQvfIDDywuiE5yY6XrbggijLPJ7VY69he8JWSdTmPhH42%2ByM3aZUAt03uw%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=44105&sent=94&recv=42&lost=0&retrans=0&sent_bytes=89525&recv_bytes=10651&delivery_rate=576018&cwnd=45600&unsent_bytes=0&cid=540d207b13c993ee&ts=290&x=1", cfExtPri, cfHdrFlush;dur=14
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd6232ca6e509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::7kwmn-1730090382737-5fe8fc2bf13d
debounce.js
cdn.skypack.dev/-/debounce@v1.2.1-nsljQIXDuyHmm6xBMrgd/dist=es2019,mode=imports/optimized/ Frame 1E1F
1 KB
1 KB
Script
General
Full URL
https://cdn.skypack.dev/-/debounce@v1.2.1-nsljQIXDuyHmm6xBMrgd/dist=es2019,mode=imports/optimized/debounce.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
61d3d7400fc5fa44d134ea22432b7000db640d459ef3fed8188bef9b1504b1d8
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/-/react-use-measure@v2.1.1-k3bLDuSByp1TyStJ6JGy/dist=es2019,mode=imports/optimized/react-use-measure.js

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"4e4-3x8Eg4aBUDFIWISv5gCrIZlEU/g"
age
1054792
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=mi8ra2UtnXBtJFdvIEv0k7MlEmBhctW27WR4B8Xm3jMuKX410dEb5puq0GLgWROfnWlun8fKgQFWse7aNVnGOlHuGOQ%2FhKyHCADXbcMnNFgoGCA%2FCt42aiIi3heWU9NBNw%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=37793&sent=262&recv=87&lost=0&retrans=0&sent_bytes=281456&recv_bytes=13031&delivery_rate=3534564&cwnd=140400&unsent_bytes=0&cid=540d207b13c993ee&ts=418&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
MISS
cf-ray
8dfcd623e86ee509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::wft9g-1730090382763-902bc8160a78
three.js
cdn.skypack.dev/-/three@v0.148.0-ZdnPTf2EskNtHkVhjjpp/dist=es2019,mode=imports/optimized/ Frame 1E1F
1 MB
199 KB
Script
General
Full URL
https://cdn.skypack.dev/-/three@v0.148.0-ZdnPTf2EskNtHkVhjjpp/dist=es2019,mode=imports/optimized/three.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
4365a7c9dac93e3f950851afc60bef8103cd3b7afa89ac07090bdf033c162333
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/three@0.148.0

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"10876c-P5N2bfZhkBWPm8uNUBSGGxqIEm4"
age
1054793
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=F1mHXpJ%2BbayIVZjBLoD0x%2Fja6mJWiuX3FmviEoAkMSzV61ZZ%2FjNAGErPORnOxPT2H7WkwRgQCWlFo1R9mFtgzJYp4keotgEHeNKp9z7YKY1ZzWmiL4eGhYOhwjOWhZ9mBw%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=37744&sent=267&recv=89&lost=0&retrans=0&sent_bytes=284095&recv_bytes=13440&delivery_rate=33083&cwnd=140400&unsent_bytes=0&cid=540d207b13c993ee&ts=561&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:35 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd624cc51e509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::2lp2k-1730090382482-c290a7eabe82
react-dom.js
cdn.skypack.dev/-/react-dom@v17.0.1-oZ1BXZ5opQ1DbTh7nu9r/dist=es2019,mode=imports/optimized/ Frame 1E1F
178 KB
47 KB
Script
General
Full URL
https://cdn.skypack.dev/-/react-dom@v17.0.1-oZ1BXZ5opQ1DbTh7nu9r/dist=es2019,mode=imports/optimized/react-dom.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
172.67.74.194 , United States, ASN13335 (CLOUDFLARENET, US),
Reverse DNS
Software
cloudflare /
Resource Hash
e07ddfd24f1a6b1cca91f244b5ceca2aa1c9d712dddd6ef1ba662d1d3b6de5c2
Security Headers
Name Value
Strict-Transport-Security max-age=63072000

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Origin
null
Referer
https://cdn.skypack.dev/react-dom@18.0.2

Response headers

access-control-expose-headers
Content-Length, X-Imports
content-encoding
br
cf-cache-status
HIT
etag
W/"2c706-HFx/j7zlErF8lE/00DxifdC7kt0"
age
127637
x-imports
/-/react@v17.0.1-yH0aYV1FOvoIPeKBbHxg/dist=es2019,mode=imports/optimized/react.js, /-/object-assign@v4.1.1-LbCnB3r2y2yFmhmiCfPn/dist=es2019,mode=imports/optimized/object-assign.js, /-/scheduler@v0.20.2-PAU9F1YosUNPKr7V4s0j/dist=es2019,mode=imports/optimized/scheduler.js
report-to
{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=cQjxLG8P0fxxP2Ih8oIu0zevAj9p2hmqronKJCXcqYthzjoaM8vYIYqnUPBtG2KsSuI%2FMXZqWL%2BzcJ%2BzvNpUM2jwUtyyPpcpzEq68XR%2F4lGzDF%2FYILJu9%2BtlFix9Lo5cew%3D%3D"}],"group":"cf-nel","max_age":604800}
alt-svc
h3=":443"; ma=86400
server-timing
cfL4;desc="?proto=QUIC&rtt=36655&sent=448&recv=110&lost=0&retrans=0&sent_bytes=495475&recv_bytes=14706&delivery_rate=26858&cwnd=180600&unsent_bytes=0&cid=540d207b13c993ee&ts=884&x=1", cfExtPri, cfHdrFlush;dur=0
date
Sat, 09 Nov 2024 09:39:36 GMT
content-type
application/javascript; charset=utf-8
vary
Accept-Encoding
priority
u=1,i=?0
strict-transport-security
max-age=63072000
cache-control
public, max-age=31536000, immutable
nel
{"success_fraction":0,"report_to":"cf-nel","max_age":604800}
x-vercel-cache
HIT
cf-ray
8dfcd626dceee509-TXL
access-control-allow-origin
*
server
cloudflare
x-vercel-id
fra1::sfo1::9lckv-1731017539211-bded6d87b870
Inbox.js
framerusercontent.com/modules/IWXtAlJLSCPAcf5IIbsK/7Kg7IfwHMnr3j7dph79E/
Redirect Chain
  • https://framer.com/m/hero-icons/Inbox.js@0.0.28
  • https://framerusercontent.com/modules/IWXtAlJLSCPAcf5IIbsK/7Kg7IfwHMnr3j7dph79E/Inbox.js
1 KB
1 KB
Script
General
Full URL
https://framerusercontent.com/modules/IWXtAlJLSCPAcf5IIbsK/7Kg7IfwHMnr3j7dph79E/Inbox.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Server
18.173.205.72 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
server-18-173-205-72.fra56.r.cloudfront.net
Software
/
Resource Hash
f8ed6769874634f22710d18334369c357cc257893a768ee47b8edeb13a90441d
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Referer
https://framerusercontent.com/

Response headers

access-control-expose-headers
Content-Range
content-encoding
br
age
348930
access-control-allow-methods
GET, HEAD, OPTIONS
x-content-type-options
nosniff
server-timing
cdn-cache-hit,cdn-pop;desc="FRA56-P12",cdn-hit-layer;desc="EDGE",cdn-rid;desc="oV9QbPltgUrTXJgxuyVlsWIOaMnt7sfvuN5gkF9MhLsFSPDQkZzFaQ==",cdn-downstream-fbl=1
x-cache
Hit from cloudfront
alt-svc
h3=":443"; ma=86400
date
Tue, 05 Nov 2024 08:44:06 GMT
content-type
text/javascript; charset=UTF-8
vary
Accept-Encoding
x-amz-cf-id
oV9QbPltgUrTXJgxuyVlsWIOaMnt7sfvuN5gkF9MhLsFSPDQkZzFaQ==
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
cache-control
public, max-age=604800, immutable
timing-allow-origin
*
referrer-policy
strict-origin-when-cross-origin
via
1.1 e240913a5e90e18bd637baa6899f2280.cloudfront.net (CloudFront)
access-control-allow-origin
*
x-xss-protection
0
x-amz-cf-pop
FRA56-P12

Redirect headers

access-control-expose-headers
Content-Range
access-control-allow-methods
GET, HEAD, OPTIONS
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Miss from cloudfront
x-amz-cf-id
0aA7sbP-iRx-SBCWF2De7FqgPR60qBBZT-uSfGQd_nLczS0USV_U5g==
date
Sat, 09 Nov 2024 09:39:36 GMT
content-type
text/html; charset=utf-8
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
cache-control
public, max-age=3600
location
https://framerusercontent.com/modules/IWXtAlJLSCPAcf5IIbsK/7Kg7IfwHMnr3j7dph79E/Inbox.js
referrer-policy
strict-origin-when-cross-origin
via
1.1 284574e4f15389d93bfcb84d196a92f0.cloudfront.net (CloudFront)
access-control-allow-origin
*
content-length
111
x-xss-protection
0
x-amz-cf-pop
FRA60-P8
Check.js
framerusercontent.com/modules/Tef4LcJps4TmCvtoenDW/ghEL3uDTIn7Rw2jCdjNr/
Redirect Chain
  • https://framer.com/m/hero-icons/Check.js@0.0.28
  • https://framerusercontent.com/modules/Tef4LcJps4TmCvtoenDW/ghEL3uDTIn7Rw2jCdjNr/Check.js
1 KB
1 KB
Script
General
Full URL
https://framerusercontent.com/modules/Tef4LcJps4TmCvtoenDW/ghEL3uDTIn7Rw2jCdjNr/Check.js
Requested by
Host: scape.run
URL: https://scape.run/
Protocol
H3
Server
18.173.205.72 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
server-18-173-205-72.fra56.r.cloudfront.net
Software
/
Resource Hash
54ef9ada1ef40e2199b9aa67973dc88e71fc07a8e4ee8532fb5a6ac4d05ef21f
Security Headers
Name Value
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Referer
https://framerusercontent.com/

Response headers

access-control-expose-headers
Content-Range
content-encoding
br
age
194906
access-control-allow-methods
GET, HEAD, OPTIONS
x-content-type-options
nosniff
server-timing
cdn-cache-hit,cdn-pop;desc="FRA56-P12",cdn-hit-layer;desc="EDGE",cdn-rid;desc="zTm5ZtqQMEeEOz8NpzB5I6VmnuQG38wJxCP0V4qvh4THWQIT5ZyuUw==",cdn-downstream-fbl=1
x-cache
Hit from cloudfront
alt-svc
h3=":443"; ma=86400
date
Thu, 07 Nov 2024 03:31:10 GMT
content-type
text/javascript; charset=UTF-8
vary
Accept-Encoding
x-amz-cf-id
zTm5ZtqQMEeEOz8NpzB5I6VmnuQG38wJxCP0V4qvh4THWQIT5ZyuUw==
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
cache-control
public, max-age=604800, immutable
timing-allow-origin
*
referrer-policy
strict-origin-when-cross-origin
via
1.1 e240913a5e90e18bd637baa6899f2280.cloudfront.net (CloudFront)
access-control-allow-origin
*
x-xss-protection
0
x-amz-cf-pop
FRA56-P12

Redirect headers

access-control-expose-headers
Content-Range
age
3366
access-control-allow-methods
GET, HEAD, OPTIONS
x-content-type-options
nosniff
alt-svc
h3=":443"; ma=86400
x-cache
Hit from cloudfront
x-amz-cf-id
4HSbSNfi4nNQKnWxQtsve53rqgXyQEJCpZQM_fWCb_Kr9VRcjF0uTw==
date
Sat, 09 Nov 2024 08:43:30 GMT
content-type
text/html; charset=utf-8
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
cache-control
public, max-age=3600
location
https://framerusercontent.com/modules/Tef4LcJps4TmCvtoenDW/ghEL3uDTIn7Rw2jCdjNr/Check.js
referrer-policy
strict-origin-when-cross-origin
via
1.1 284574e4f15389d93bfcb84d196a92f0.cloudfront.net (CloudFront)
access-control-allow-origin
*
content-length
111
x-xss-protection
0
x-amz-cf-pop
FRA60-P8
NNSpwlDoH0XMH2cLbRoBqjqVto.svg
framerusercontent.com/images/
3 KB
3 KB
Other
General
Full URL
https://framerusercontent.com/images/NNSpwlDoH0XMH2cLbRoBqjqVto.svg
Protocol
H3
Security
QUIC, , AES_128_GCM
Server
18.173.205.72 , United States, ASN16509 (AMAZON-02, US),
Reverse DNS
server-18-173-205-72.fra56.r.cloudfront.net
Software
/
Resource Hash
b85f373cd3df0a3743527025a073957566585a08ba398f3d427640d47ea3a27a
Security Headers
Name Value
Content-Security-Policy default-src 'none'; script-src 'none'; img-src 'self'; media-src 'self'; report-uri https://framer.report-uri.com/r/t/csp/enforce;
Strict-Transport-Security max-age=31536000; includeSubDomains; preload
X-Content-Type-Options nosniff
X-Frame-Options deny
X-Xss-Protection 0

Request headers

User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Referer
https://scape.run/

Response headers

etag
"535a9c0bfd8cec4ec87ad31195f591f1"
age
100392
x-content-type-options
nosniff
x-amzn-requestid
99c1a233-c4c6-4d17-b057-9cb73cf947b2
server-timing
cdn-cache-hit,cdn-pop;desc="FRA56-P12",cdn-hit-layer;desc="Origin Shield",cdn-rid;desc="CfkpemNfbEJkQMmW4K2rNE4c8FGklrnb7W3Dk9S2nLaPpHM8zAq0Fg==",cdn-downstream-fbl=99
x-cache
Hit from cloudfront
alt-svc
h3=":443"; ma=86400
date
Fri, 08 Nov 2024 05:46:24 GMT
content-type
image/svg+xml
vary
Accept
x-amz-cf-id
CfkpemNfbEJkQMmW4K2rNE4c8FGklrnb7W3Dk9S2nLaPpHM8zAq0Fg==
x-frame-options
deny
strict-transport-security
max-age=31536000; includeSubDomains; preload
content-security-policy
default-src 'none'; script-src 'none'; img-src 'self'; media-src 'self'; report-uri https://framer.report-uri.com/r/t/csp/enforce;
cache-control
public, max-age=31536000, stale-while-revalidate=31536000
timing-allow-origin
*
cross-origin-resource-policy
cross-origin
x-amzn-trace-id
Root=1-672da5b0-1c214db82a3612db06ed3f21;Parent=035f9d60bd3399bd;Sampled=0;Lineage=1:f456f256:0
referrer-policy
strict-origin-when-cross-origin
via
1.1 b44afb2a44376871c20edb8c123ed47c.cloudfront.net (CloudFront)
access-control-allow-origin
*
x-xss-protection
0
x-amz-cf-pop
FRA56-P12
384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4
github-production-user-asset-6210df.s3.amazonaws.com/96381221/
4 KB
0
Media
General
Full URL
https://github-production-user-asset-6210df.s3.amazonaws.com/96381221/384583861-fe829675-5b14-4d48-a3b4-99e66fc2a44d.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAVCODYLSA53PQK4ZA%2F20241109%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241109T093935Z&X-Amz-Expires=300&X-Amz-Signature=b8f64f515b63f0e9b7a95f7b5c242d3fbdb8a1270a9ae3a958c82367f6550615&X-Amz-SignedHeaders=host
Protocol
HTTP/1.1
Security
TLS 1.3, , AES_128_GCM
Server
16.15.192.161 , United States, ASN14618 (AMAZON-AES, US),
Reverse DNS
Software
AmazonS3 /
Resource Hash

Request headers

Referer
https://scape.run/
Accept-Encoding
identity;q=1, *;q=0
User-Agent
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Range
bytes=3745241-

Response headers

x-amz-id-2
kCkrxNvh4evcIHbjctckjkQJ0C+ToE1FMFwusmhKspeFPaDD97wHq1tp+ltpl544ohDE6zwOvxfFnuL2SGOwaSvBu/W94fd2
Cache-Control
max-age=2592000
ETag
"120506daf8cc419ca3864e7cbf73a531"
Content-Range
bytes 3745241-5592266/5592267
x-amz-request-id
8STA7Z4YVTAH74KK
Accept-Ranges
bytes
Content-Length
1847026
Date
Sat, 09 Nov 2024 09:39:43 GMT
x-amz-meta-surrogate-control
max-age=31557600
Last-Modified
Sat, 09 Nov 2024 06:51:13 GMT
Content-Type
video/mp4
Server
AmazonS3
x-amz-server-side-encryption
AES256

Verdicts & Comments Add Verdict or Comment

14 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 function| __framer_onRewriteBreakpoints object| animator function| MotionHandoffAnimation function| MotionHasOptimisedAnimation function| MotionHandoffMarkAsComplete function| MotionHandoffIsComplete function| MotionCancelOptimisedAnimation function| MotionCheckAppearSync function| __send_framer_event object| __framer_events function| __framer_importFromPackage object| process boolean| MotionIsMounted

0 Cookies

1 Console Messages

Source Level URL
Text
rendering warning URL: data:text/html;base64,PGh0bWw+CiAgICAgICAgPGhlYWQ+CiAgICAgICAgICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CiAgICAgICAgICAgIDxzdHlsZT4KICAgICAgICAgICAgICAgIGh0bWwsIGJvZHl7CiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwOwogICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7CiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgPC9zdHlsZT4KICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJpbXBvcnRtYXAiPgp7CiAgICAiaW1wb3J0cyI6IHsKICAgICAgICAicmVhY3QiOiAiaHR0cHM6Ly9jZG4uc2t5cGFjay5kZXYvcmVhY3RAMTguMC4yIiwKICAgICAgICAicmVhY3QtZG9tIjogImh0dHBzOi8vY2RuLnNreXBhY2suZGV2L3JlYWN0LWRvbUAxOC4wLjIiLAogICAgICAgICJ0aHJlZSI6ICJodHRwczovL2Nkbi5za3lwYWNrLmRldi90aHJlZUAwLjE0OC4wIiwKICAgICAgICAicmVhY3QtdGhyZWUvZmliZXIiOiAiaHR0cHM6Ly9jZG4uc2t5cGFjay5kZXYvQHJlYWN0LXRocmVlL2ZpYmVyQDcuMC4yNCIKICAgIH0KfQo8L3NjcmlwdD4KPHN0eWxlPgogICAgaHRtbCwgYm9keXsKICAgICAgICBtYXJnaW46IDA7CiAgICAgICAgcGFkZGluZzogMDsKICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICBoZWlnaHQ6IDEwMCU7CiAgICAgICAgYm9yZGVyOiAwOwogICAgfQogICAgLm50LWVtYmVkewogICAgICAgIHdpZHRoOiAxMDAlOwogICAgICAgIGhlaWdodDogMTAwJTsKICAgIH0KICAgIC5udC1lbWJlZCBjYW52YXN7CiAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgaGVpZ2h0OiAxMDAlOwogICAgfQo8L3N0eWxlPgo8c2NyaXB0IHR5cGU9Im1vZHVsZSI+CiAgICBpbXBvcnQgUmVhY3QsIHt1c2VSZWYsdXNlTWVtb30gZnJvbSAncmVhY3QnOwogICAgaW1wb3J0IFJlYWN0RE9NIGZyb20gJ3JlYWN0LWRvbSc7CiAgICBpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7CiAgICBpbXBvcnQge0NhbnZhcywgdXNlRnJhbWUsIHVzZVRocmVlfSBmcm9tICdyZWFjdC10aHJlZS9maWJlcic7CgogICAgbGV0IGVtYmVkUm9vdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgZW1iZWRSb290LmNsYXNzTmFtZSA9ICJudC1lbWJlZCI7CiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVtYmVkUm9vdCk7CgogICAgY29uc3QgVGV4dHVyZU1lc2ggPSAoKSA9PiB7CiAgICAgICAgY29uc3QgbWVzaCA9IHVzZVJlZihudWxsKQogICAgICAgIHVzZUZyYW1lKHN0YXRlID0+IHsKICAgICAgICAgICAgY29uc3QgeyBjbG9jaywgbW91c2UsIGdsLCBzY2VuZSwgY2FtZXJhIH0gPSBzdGF0ZQogICAgICAgICAgICBpZihtZXNoLmN1cnJlbnQpewogICAgICAgICAgICAgICAgbWVzaC5jdXJyZW50Lm1hdGVyaWFsLnVuaWZvcm1zLnVfbW91c2UudmFsdWUgPSBbbW91c2UueCAvIDIgKyAwLjUsIG1vdXNlLnkgLyAyICsgMC41XQogICAgICAgICAgICAgICAgbWVzaC5jdXJyZW50Lm1hdGVyaWFsLnVuaWZvcm1zLnVfdGltZS52YWx1ZSA9IGNsb2NrLmdldEVsYXBzZWRUaW1lKCkKICAgICAgICAgICAgICAgIGxldCBjID0gZ2wuZG9tRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKQogICAgICAgICAgICAgICAgbWVzaC5jdXJyZW50Lm1hdGVyaWFsLnVuaWZvcm1zLnVfcmVzb2x1dGlvbi52YWx1ZSA9IFtjLndpZHRoLGMuaGVpZ2h0XQogICAgICAgICAgICB9CiAgICAgICAgfSkKICAgICAgICAKICAgICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudCgnbWVzaCcsCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJlZjptZXNoLAogICAgICAgICAgICAgICAgcG9zaXRpb246IFswLDAsMF0sCiAgICAgICAgICAgICAgICBzY2FsZTogMS41LAogICAgICAgICAgICAgICAgcm90YXRpb246IFstMC43NSwwLjI1LC0wLjI1XQogICAgICAgICAgICB9LAogICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KCdwbGFuZUdlb21ldHJ5Jyx7YXJnczpbMywxLDIwNDhdfSksIAogICAgICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KCdzaGFkZXJNYXRlcmlhbCcsewogICAgICAgICAgICAgICAgZnJhZ21lbnRTaGFkZXI6IGAvLyBGcmFnbWVudCBzaGFkZXIKCgoKLy8gVW5pZm9ybXMKCnVuaWZvcm0gdmVjMiB1X3Jlc29sdXRpb247Cgp1bmlmb3JtIHZlYzIgdV9tb3VzZTsKCnVuaWZvcm0gZmxvYXQgdV90aW1lOwoKdW5pZm9ybSBmbG9hdCB1X2ludGVuc2l0eTsKCnVuaWZvcm0gdmVjNCB1X2NvbG9yc1syXTsKCnVuaWZvcm0gZmxvYXQgdV9zcGVlZDsKCnVuaWZvcm0gZmxvYXQgdV9zY2FsZTsKCgoKdmFyeWluZyB2ZWMyIHZVdjsKCnZhcnlpbmcgZmxvYXQgdkRpc3BsYWNlbWVudDsKCnZhcnlpbmcgdmVjMyBwb3M7CgoKCgoKCgojaWZuZGVmIEZOQ19NT0QyODkKI2RlZmluZSBGTkNfTU9EMjg5CgpmbG9hdCBtb2QyODkoY29uc3QgaW4gZmxvYXQgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CnZlYzIgbW9kMjg5KGNvbnN0IGluIHZlYzIgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CnZlYzMgbW9kMjg5KGNvbnN0IGluIHZlYzMgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CnZlYzQgbW9kMjg5KGNvbnN0IGluIHZlYzQgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CgojZW5kaWYKCgoKCgojaWZuZGVmIEZOQ19QRVJNVVRFCiNkZWZpbmUgRk5DX1BFUk1VVEUKCmZsb2F0IHBlcm11dGUoY29uc3QgaW4gZmxvYXQgeCkgeyByZXR1cm4gbW9kMjg5KCgoeCAqIDM0LjApICsgMS4wKSAqIHgpOyB9CnZlYzIgcGVybXV0ZShjb25zdCBpbiB2ZWMyIHgpIHsgcmV0dXJuIG1vZDI4OSgoKHggKiAzNC4wKSArIDEuMCkgKiB4KTsgfQp2ZWMzIHBlcm11dGUoY29uc3QgaW4gdmVjMyB4KSB7IHJldHVybiBtb2QyODkoKCh4ICogMzQuMCkgKyAxLjApICogeCk7IH0KdmVjNCBwZXJtdXRlKGNvbnN0IGluIHZlYzQgeCkgeyByZXR1cm4gbW9kMjg5KCgoeCAqIDM0LjApICsgMS4wKSAqIHgpOyB9CgojZW5kaWYKCgoKI2lmbmRlZiBGTkNfVEFZTE9SSU5WU1FSVAojZGVmaW5lIEZOQ19UQVlMT1JJTlZTUVJUCmZsb2F0IHRheWxvckludlNxcnQoaW4gZmxvYXQgcikgeyByZXR1cm4gMS43OTI4NDI5MTQwMDE1OSAtIDAuODUzNzM0NzIwOTUzMTQgKiByOyB9CnZlYzIgdGF5bG9ySW52U3FydChpbiB2ZWMyIHIpIHsgcmV0dXJuIDEuNzkyODQyOTE0MDAxNTkgLSAwLjg1MzczNDcyMDk1MzE0ICogcjsgfQp2ZWMzIHRheWxvckludlNxcnQoaW4gdmVjMyByKSB7IHJldHVybiAxLjc5Mjg0MjkxNDAwMTU5IC0gMC44NTM3MzQ3MjA5NTMxNCAqIHI7IH0KdmVjNCB0YXlsb3JJbnZTcXJ0KGluIHZlYzQgcikgeyByZXR1cm4gMS43OTI4NDI5MTQwMDE1OSAtIDAuODUzNzM0NzIwOTUzMTQgKiByOyB9CiNlbmRpZgoKCiNpZm5kZWYgRk5DX1FVSU5USUMKI2RlZmluZSBGTkNfUVVJTlRJQyAKCmZsb2F0IHF1aW50aWMoY29uc3QgaW4gZmxvYXQgdikgeyByZXR1cm4gdip2KnYqKHYqKHYqNi4wLTE1LjApKzEwLjApOyB9CnZlYzIgIHF1aW50aWMoY29uc3QgaW4gdmVjMiB2KSAgeyByZXR1cm4gdip2KnYqKHYqKHYqNi4wLTE1LjApKzEwLjApOyB9CnZlYzMgIHF1aW50aWMoY29uc3QgaW4gdmVjMyB2KSAgeyByZXR1cm4gdip2KnYqKHYqKHYqNi4wLTE1LjApKzEwLjApOyB9CnZlYzQgIHF1aW50aWMoY29uc3QgaW4gdmVjNCB2KSAgeyByZXR1cm4gdip2KnYqKHYqKHYqNi4wLTE1LjApKzEwLjApOyB9CgojZW5kaWYKCgoKI2lmbmRlZiBGTkNfUE5PSVNFCiNkZWZpbmUgRk5DX1BOT0lTRQoKZmxvYXQgcG5vaXNlKGluIHZlYzIgUCwgaW4gdmVjMiByZXApIHsKICAgIHZlYzQgUGkgPSBmbG9vcihQLnh5eHkpICsgdmVjNCgwLjAsIDAuMCwgMS4wLCAxLjApOwogICAgdmVjNCBQZiA9IGZyYWN0KFAueHl4eSkgLSB2ZWM0KDAuMCwgMC4wLCAxLjAsIDEuMCk7CiAgICBQaSA9IG1vZChQaSwgcmVwLnh5eHkpOyAKICAgIFBpID0gbW9kMjg5KFBpKTsgICAgICAgIAogICAgdmVjNCBpeCA9IFBpLnh6eHo7CiAgICB2ZWM0IGl5ID0gUGkueXl3dzsKICAgIHZlYzQgZnggPSBQZi54enh6OwogICAgdmVjNCBmeSA9IFBmLnl5d3c7CgogICAgdmVjNCBpID0gcGVybXV0ZShwZXJtdXRlKGl4KSArIGl5KTsKCiAgICB2ZWM0IGd4ID0gZnJhY3QoaSAqICgxLjAgLyA0MS4wKSkgKiAyLjAgLSAxLjAgOwogICAgdmVjNCBneSA9IGFicyhneCkgLSAwLjUgOwogICAgdmVjNCB0eCA9IGZsb29yKGd4ICsgMC41KTsKICAgIGd4ID0gZ3ggLSB0eDsKCiAgICB2ZWMyIGcwMCA9IHZlYzIoZ3gueCxneS54KTsKICAgIHZlYzIgZzEwID0gdmVjMihneC55LGd5LnkpOwogICAgdmVjMiBnMDEgPSB2ZWMyKGd4LnosZ3kueik7CiAgICB2ZWMyIGcxMSA9IHZlYzIoZ3gudyxneS53KTsKCiAgICB2ZWM0IG5vcm0gPSB0YXlsb3JJbnZTcXJ0KHZlYzQoZG90KGcwMCwgZzAwKSwgZG90KGcwMSwgZzAxKSwgZG90KGcxMCwgZzEwKSwgZG90KGcxMSwgZzExKSkpOwogICAgZzAwICo9IG5vcm0ueDsKICAgIGcwMSAqPSBub3JtLnk7CiAgICBnMTAgKj0gbm9ybS56OwogICAgZzExICo9IG5vcm0udzsKCiAgICBmbG9hdCBuMDAgPSBkb3QoZzAwLCB2ZWMyKGZ4LngsIGZ5LngpKTsKICAgIGZsb2F0IG4xMCA9IGRvdChnMTAsIHZlYzIoZngueSwgZnkueSkpOwogICAgZmxvYXQgbjAxID0gZG90KGcwMSwgdmVjMihmeC56LCBmeS56KSk7CiAgICBmbG9hdCBuMTEgPSBkb3QoZzExLCB2ZWMyKGZ4LncsIGZ5LncpKTsKCiAgICB2ZWMyIGZhZGVfeHkgPSBxdWludGljKFBmLnh5KTsKICAgIHZlYzIgbl94ID0gbWl4KHZlYzIobjAwLCBuMDEpLCB2ZWMyKG4xMCwgbjExKSwgZmFkZV94eS54KTsKICAgIGZsb2F0IG5feHkgPSBtaXgobl94LngsIG5feC55LCBmYWRlX3h5LnkpOwogICAgcmV0dXJuIDIuMyAqIG5feHk7Cn0KCmZsb2F0IHBub2lzZShpbiB2ZWMzIFAsIGluIHZlYzMgcmVwKSB7CiAgICB2ZWMzIFBpMCA9IG1vZChmbG9vcihQKSwgcmVwKTsgCiAgICB2ZWMzIFBpMSA9IG1vZChQaTAgKyB2ZWMzKDEuMCksIHJlcCk7IAogICAgUGkwID0gbW9kMjg5KFBpMCk7CiAgICBQaTEgPSBtb2QyODkoUGkxKTsKICAgIHZlYzMgUGYwID0gZnJhY3QoUCk7IAogICAgdmVjMyBQZjEgPSBQZjAgLSB2ZWMzKDEuMCk7IAogICAgdmVjNCBpeCA9IHZlYzQoUGkwLngsIFBpMS54LCBQaTAueCwgUGkxLngpOwogICAgdmVjNCBpeSA9IHZlYzQoUGkwLnl5LCBQaTEueXkpOwogICAgdmVjNCBpejAgPSBQaTAuenp6ejsKICAgIHZlYzQgaXoxID0gUGkxLnp6eno7CgogICAgdmVjNCBpeHkgPSBwZXJtdXRlKHBlcm11dGUoaXgpICsgaXkpOwogICAgdmVjNCBpeHkwID0gcGVybXV0ZShpeHkgKyBpejApOwogICAgdmVjNCBpeHkxID0gcGVybXV0ZShpeHkgKyBpejEpOwoKICAgIHZlYzQgZ3gwID0gaXh5MCAqICgxLjAgLyA3LjApOwogICAgdmVjNCBneTAgPSBmcmFjdChmbG9vcihneDApICogKDEuMCAvIDcuMCkpIC0gMC41OwogICAgZ3gwID0gZnJhY3QoZ3gwKTsKICAgIHZlYzQgZ3owID0gdmVjNCgwLjUpIC0gYWJzKGd4MCkgLSBhYnMoZ3kwKTsKICAgIHZlYzQgc3owID0gc3RlcChnejAsIHZlYzQoMC4wKSk7CiAgICBneDAgLT0gc3owICogKHN0ZXAoMC4wLCBneDApIC0gMC41KTsKICAgIGd5MCAtPSBzejAgKiAoc3RlcCgwLjAsIGd5MCkgLSAwLjUpOwoKICAgIHZlYzQgZ3gxID0gaXh5MSAqICgxLjAgLyA3LjApOwogICAgdmVjNCBneTEgPSBmcmFjdChmbG9vcihneDEpICogKDEuMCAvIDcuMCkpIC0gMC41OwogICAgZ3gxID0gZnJhY3QoZ3gxKTsKICAgIHZlYzQgZ3oxID0gdmVjNCgwLjUpIC0gYWJzKGd4MSkgLSBhYnMoZ3kxKTsKICAgIHZlYzQgc3oxID0gc3RlcChnejEsIHZlYzQoMC4wKSk7CiAgICBneDEgLT0gc3oxICogKHN0ZXAoMC4wLCBneDEpIC0gMC41KTsKICAgIGd5MSAtPSBzejEgKiAoc3RlcCgwLjAsIGd5MSkgLSAwLjUpOwoKICAgIHZlYzMgZzAwMCA9IHZlYzMoZ3gwLngsZ3kwLngsZ3owLngpOwogICAgdmVjMyBnMTAwID0gdmVjMyhneDAueSxneTAueSxnejAueSk7CiAgICB2ZWMzIGcwMTAgPSB2ZWMzKGd4MC56LGd5MC56LGd6MC56KTsKICAgIHZlYzMgZzExMCA9IHZlYzMoZ3gwLncsZ3kwLncsZ3owLncpOwogICAgdmVjMyBnMDAxID0gdmVjMyhneDEueCxneTEueCxnejEueCk7CiAgICB2ZWMzIGcxMDEgPSB2ZWMzKGd4MS55LGd5MS55LGd6MS55KTsKICAgIHZlYzMgZzAxMSA9IHZlYzMoZ3gxLnosZ3kxLnosZ3oxLnopOwogICAgdmVjMyBnMTExID0gdmVjMyhneDEudyxneTEudyxnejEudyk7CgogICAgdmVjNCBub3JtMCA9IHRheWxvckludlNxcnQodmVjNChkb3QoZzAwMCwgZzAwMCksIGRvdChnMDEwLCBnMDEwKSwgZG90KGcxMDAsIGcxMDApLCBkb3QoZzExMCwgZzExMCkpKTsKICAgIGcwMDAgKj0gbm9ybTAueDsKICAgIGcwMTAgKj0gbm9ybTAueTsKICAgIGcxMDAgKj0gbm9ybTAuejsKICAgIGcxMTAgKj0gbm9ybTAudzsKICAgIHZlYzQgbm9ybTEgPSB0YXlsb3JJbnZTcXJ0KHZlYzQoZG90KGcwMDEsIGcwMDEpLCBkb3QoZzAxMSwgZzAxMSksIGRvdChnMTAxLCBnMTAxKSwgZG90KGcxMTEsIGcxMTEpKSk7CiAgICBnMDAxICo9IG5vcm0xLng7CiAgICBnMDExICo9IG5vcm0xLnk7CiAgICBnMTAxICo9IG5vcm0xLno7CiAgICBnMTExICo9IG5vcm0xLnc7CgogICAgZmxvYXQgbjAwMCA9IGRvdChnMDAwLCBQZjApOwogICAgZmxvYXQgbjEwMCA9IGRvdChnMTAwLCB2ZWMzKFBmMS54LCBQZjAueXopKTsKICAgIGZsb2F0IG4wMTAgPSBkb3QoZzAxMCwgdmVjMyhQZjAueCwgUGYxLnksIFBmMC56KSk7CiAgICBmbG9hdCBuMTEwID0gZG90KGcxMTAsIHZlYzMoUGYxLnh5LCBQZjAueikpOwogICAgZmxvYXQgbjAwMSA9IGRvdChnMDAxLCB2ZWMzKFBmMC54eSwgUGYxLnopKTsKICAgIGZsb2F0IG4xMDEgPSBkb3QoZzEwMSwgdmVjMyhQZjEueCwgUGYwLnksIFBmMS56KSk7CiAgICBmbG9hdCBuMDExID0gZG90KGcwMTEsIHZlYzMoUGYwLngsIFBmMS55eikpOwogICAgZmxvYXQgbjExMSA9IGRvdChnMTExLCBQZjEpOwoKICAgIHZlYzMgZmFkZV94eXogPSBxdWludGljKFBmMCk7CiAgICB2ZWM0IG5feiA9IG1peCh2ZWM0KG4wMDAsIG4xMDAsIG4wMTAsIG4xMTApLCB2ZWM0KG4wMDEsIG4xMDEsIG4wMTEsIG4xMTEpLCBmYWRlX3h5ei56KTsKICAgIHZlYzIgbl95eiA9IG1peChuX3oueHksIG5fei56dywgZmFkZV94eXoueSk7CiAgICBmbG9hdCBuX3h5eiA9IG1peChuX3l6LngsIG5feXoueSwgZmFkZV94eXoueCk7CiAgICByZXR1cm4gMi4yICogbl94eXo7Cn0KCmZsb2F0IHBub2lzZShpbiB2ZWM0IFAsIGluIHZlYzQgcmVwKSB7CiAgICB2ZWM0IFBpMCA9IG1vZChmbG9vcihQKSwgcmVwKTsgCiAgICB2ZWM0IFBpMSA9IG1vZChQaTAgKyAxLjAsIHJlcCk7IAogICAgUGkwID0gbW9kMjg5KFBpMCk7CiAgICBQaTEgPSBtb2QyODkoUGkxKTsKICAgIHZlYzQgUGYwID0gZnJhY3QoUCk7IAogICAgdmVjNCBQZjEgPSBQZjAgLSAxLjA7IAogICAgdmVjNCBpeCA9IHZlYzQoUGkwLngsIFBpMS54LCBQaTAueCwgUGkxLngpOwogICAgdmVjNCBpeSA9IHZlYzQoUGkwLnl5LCBQaTEueXkpOwogICAgdmVjNCBpejAgPSB2ZWM0KFBpMC56enp6KTsKICAgIHZlYzQgaXoxID0gdmVjNChQaTEuenp6eik7CiAgICB2ZWM0IGl3MCA9IHZlYzQoUGkwLnd3d3cpOwogICAgdmVjNCBpdzEgPSB2ZWM0KFBpMS53d3d3KTsKCiAgICB2ZWM0IGl4eSA9IHBlcm11dGUocGVybXV0ZShpeCkgKyBpeSk7CiAgICB2ZWM0IGl4eTAgPSBwZXJtdXRlKGl4eSArIGl6MCk7CiAgICB2ZWM0IGl4eTEgPSBwZXJtdXRlKGl4eSArIGl6MSk7CiAgICB2ZWM0IGl4eTAwID0gcGVybXV0ZShpeHkwICsgaXcwKTsKICAgIHZlYzQgaXh5MDEgPSBwZXJtdXRlKGl4eTAgKyBpdzEpOwogICAgdmVjNCBpeHkxMCA9IHBlcm11dGUoaXh5MSArIGl3MCk7CiAgICB2ZWM0IGl4eTExID0gcGVybXV0ZShpeHkxICsgaXcxKTsKCiAgICB2ZWM0IGd4MDAgPSBpeHkwMCAqICgxLjAgLyA3LjApOwogICAgdmVjNCBneTAwID0gZmxvb3IoZ3gwMCkgKiAoMS4wIC8gNy4wKTsKICAgIHZlYzQgZ3owMCA9IGZsb29yKGd5MDApICogKDEuMCAvIDYuMCk7CiAgICBneDAwID0gZnJhY3QoZ3gwMCkgLSAwLjU7CiAgICBneTAwID0gZnJhY3QoZ3kwMCkgLSAwLjU7CiAgICBnejAwID0gZnJhY3QoZ3owMCkgLSAwLjU7CiAgICB2ZWM0IGd3MDAgPSB2ZWM0KDAuNzUpIC0gYWJzKGd4MDApIC0gYWJzKGd5MDApIC0gYWJzKGd6MDApOwogICAgdmVjNCBzdzAwID0gc3RlcChndzAwLCB2ZWM0KDAuMCkpOwogICAgZ3gwMCAtPSBzdzAwICogKHN0ZXAoMC4wLCBneDAwKSAtIDAuNSk7CiAgICBneTAwIC09IHN3MDAgKiAoc3RlcCgwLjAsIGd5MDApIC0gMC41KTsKCiAgICB2ZWM0IGd4MDEgPSBpeHkwMSAqICgxLjAgLyA3LjApOwogICAgdmVjNCBneTAxID0gZmxvb3IoZ3gwMSkgKiAoMS4wIC8gNy4wKTsKICAgIHZlYzQgZ3owMSA9IGZsb29yKGd5MDEpICogKDEuMCAvIDYuMCk7CiAgICBneDAxID0gZnJhY3QoZ3gwMSkgLSAwLjU7CiAgICBneTAxID0gZnJhY3QoZ3kwMSkgLSAwLjU7CiAgICBnejAxID0gZnJhY3QoZ3owMSkgLSAwLjU7CiAgICB2ZWM0IGd3MDEgPSB2ZWM0KDAuNzUpIC0gYWJzKGd4MDEpIC0gYWJzKGd5MDEpIC0gYWJzKGd6MDEpOwogICAgdmVjNCBzdzAxID0gc3RlcChndzAxLCB2ZWM0KDAuMCkpOwogICAgZ3gwMSAtPSBzdzAxICogKHN0ZXAoMC4wLCBneDAxKSAtIDAuNSk7CiAgICBneTAxIC09IHN3MDEgKiAoc3RlcCgwLjAsIGd5MDEpIC0gMC41KTsKCiAgICB2ZWM0IGd4MTAgPSBpeHkxMCAqICgxLjAgLyA3LjApOwogICAgdmVjNCBneTEwID0gZmxvb3IoZ3gxMCkgKiAoMS4wIC8gNy4wKTsKICAgIHZlYzQgZ3oxMCA9IGZsb29yKGd5MTApICogKDEuMCAvIDYuMCk7CiAgICBneDEwID0gZnJhY3QoZ3gxMCkgLSAwLjU7CiAgICBneTEwID0gZnJhY3QoZ3kxMCkgLSAwLjU7CiAgICBnejEwID0gZnJhY3QoZ3oxMCkgLSAwLjU7CiAgICB2ZWM0IGd3MTAgPSB2ZWM0KDAuNzUpIC0gYWJzKGd4MTApIC0gYWJzKGd5MTApIC0gYWJzKGd6MTApOwogICAgdmVjNCBzdzEwID0gc3RlcChndzEwLCB2ZWM0KDAuMCkpOwogICAgZ3gxMCAtPSBzdzEwICogKHN0ZXAoMC4wLCBneDEwKSAtIDAuNSk7CiAgICBneTEwIC09IHN3MTAgKiAoc3RlcCgwLjAsIGd5MTApIC0gMC41KTsKCiAgICB2ZWM0IGd4MTEgPSBpeHkxMSAqICgxLjAgLyA3LjApOwogICAgdmVjNCBneTExID0gZmxvb3IoZ3gxMSkgKiAoMS4wIC8gNy4wKTsKICAgIHZlYzQgZ3oxMSA9IGZsb29yKGd5MTEpICogKDEuMCAvIDYuMCk7CiAgICBneDExID0gZnJhY3QoZ3gxMSkgLSAwLjU7CiAgICBneTExID0gZnJhY3QoZ3kxMSkgLSAwLjU7CiAgICBnejExID0gZnJhY3QoZ3oxMSkgLSAwLjU7CiAgICB2ZWM0IGd3MTEgPSB2ZWM0KDAuNzUpIC0gYWJzKGd4MTEpIC0gYWJzKGd5MTEpIC0gYWJzKGd6MTEpOwogICAgdmVjNCBzdzExID0gc3RlcChndzExLCB2ZWM0KDAuMCkpOwogICAgZ3gxMSAtPSBzdzExICogKHN0ZXAoMC4wLCBneDExKSAtIDAuNSk7CiAgICBneTExIC09IHN3MTEgKiAoc3RlcCgwLjAsIGd5MTEpIC0gMC41KTsKCiAgICB2ZWM0IGcwMDAwID0gdmVjNChneDAwLngsZ3kwMC54LGd6MDAueCxndzAwLngpOwogICAgdmVjNCBnMTAwMCA9IHZlYzQoZ3gwMC55LGd5MDAueSxnejAwLnksZ3cwMC55KTsKICAgIHZlYzQgZzAxMDAgPSB2ZWM0KGd4MDAueixneTAwLnosZ3owMC56LGd3MDAueik7CiAgICB2ZWM0IGcxMTAwID0gdmVjNChneDAwLncsZ3kwMC53LGd6MDAudyxndzAwLncpOwogICAgdmVjNCBnMDAxMCA9IHZlYzQoZ3gxMC54LGd5MTAueCxnejEwLngsZ3cxMC54KTsKICAgIHZlYzQgZzEwMTAgPSB2ZWM0KGd4MTAueSxneTEwLnksZ3oxMC55LGd3MTAueSk7CiAgICB2ZWM0IGcwMTEwID0gdmVjNChneDEwLnosZ3kxMC56LGd6MTAueixndzEwLnopOwogICAgdmVjNCBnMTExMCA9IHZlYzQoZ3gxMC53LGd5MTAudyxnejEwLncsZ3cxMC53KTsKICAgIHZlYzQgZzAwMDEgPSB2ZWM0KGd4MDEueCxneTAxLngsZ3owMS54LGd3MDEueCk7CiAgICB2ZWM0IGcxMDAxID0gdmVjNChneDAxLnksZ3kwMS55LGd6MDEueSxndzAxLnkpOwogICAgdmVjNCBnMDEwMSA9IHZlYzQoZ3gwMS56LGd5MDEueixnejAxLnosZ3cwMS56KTsKICAgIHZlYzQgZzExMDEgPSB2ZWM0KGd4MDEudyxneTAxLncsZ3owMS53LGd3MDEudyk7CiAgICB2ZWM0IGcwMDExID0gdmVjNChneDExLngsZ3kxMS54LGd6MTEueCxndzExLngpOwogICAgdmVjNCBnMTAxMSA9IHZlYzQoZ3gxMS55LGd5MTEueSxnejExLnksZ3cxMS55KTsKICAgIHZlYzQgZzAxMTEgPSB2ZWM0KGd4MTEueixneTExLnosZ3oxMS56LGd3MTEueik7CiAgICB2ZWM0IGcxMTExID0gdmVjNChneDExLncsZ3kxMS53LGd6MTEudyxndzExLncpOwoKICAgIHZlYzQgbm9ybTAwID0gdGF5bG9ySW52U3FydCh2ZWM0KGRvdChnMDAwMCwgZzAwMDApLCBkb3QoZzAxMDAsIGcwMTAwKSwgZG90KGcxMDAwLCBnMTAwMCksIGRvdChnMTEwMCwgZzExMDApKSk7CiAgICBnMDAwMCAqPSBub3JtMDAueDsKICAgIGcwMTAwICo9IG5vcm0wMC55OwogICAgZzEwMDAgKj0gbm9ybTAwLno7CiAgICBnMTEwMCAqPSBub3JtMDAudzsKCiAgICB2ZWM0IG5vcm0wMSA9IHRheWxvckludlNxcnQodmVjNChkb3QoZzAwMDEsIGcwMDAxKSwgZG90KGcwMTAxLCBnMDEwMSksIGRvdChnMTAwMSwgZzEwMDEpLCBkb3QoZzExMDEsIGcxMTAxKSkpOwogICAgZzAwMDEgKj0gbm9ybTAxLng7CiAgICBnMDEwMSAqPSBub3JtMDEueTsKICAgIGcxMDAxICo9IG5vcm0wMS56OwogICAgZzExMDEgKj0gbm9ybTAxLnc7CgogICAgdmVjNCBub3JtMTAgPSB0YXlsb3JJbnZTcXJ0KHZlYzQoZG90KGcwMDEwLCBnMDAxMCksIGRvdChnMDExMCwgZzAxMTApLCBkb3QoZzEwMTAsIGcxMDEwKSwgZG90KGcxMTEwLCBnMTExMCkpKTsKICAgIGcwMDEwICo9IG5vcm0xMC54OwogICAgZzAxMTAgKj0gbm9ybTEwLnk7CiAgICBnMTAxMCAqPSBub3JtMTAuejsKICAgIGcxMTEwICo9IG5vcm0xMC53OwoKICAgIHZlYzQgbm9ybTExID0gdGF5bG9ySW52U3FydCh2ZWM0KGRvdChnMDAxMSwgZzAwMTEpLCBkb3QoZzAxMTEsIGcwMTExKSwgZG90KGcxMDExLCBnMTAxMSksIGRvdChnMTExMSwgZzExMTEpKSk7CiAgICBnMDAxMSAqPSBub3JtMTEueDsKICAgIGcwMTExICo9IG5vcm0xMS55OwogICAgZzEwMTEgKj0gbm9ybTExLno7CiAgICBnMTExMSAqPSBub3JtMTEudzsKCiAgICBmbG9hdCBuMDAwMCA9IGRvdChnMDAwMCwgUGYwKTsKICAgIGZsb2F0IG4xMDAwID0gZG90KGcxMDAwLCB2ZWM0KFBmMS54LCBQZjAueXp3KSk7CiAgICBmbG9hdCBuMDEwMCA9IGRvdChnMDEwMCwgdmVjNChQZjAueCwgUGYxLnksIFBmMC56dykpOwogICAgZmxvYXQgbjExMDAgPSBkb3QoZzExMDAsIHZlYzQoUGYxLnh5LCBQZjAuencpKTsKICAgIGZsb2F0IG4wMDEwID0gZG90KGcwMDEwLCB2ZWM0KFBmMC54eSwgUGYxLnosIFBmMC53KSk7CiAgICBmbG9hdCBuMTAxMCA9IGRvdChnMTAxMCwgdmVjNChQZjEueCwgUGYwLnksIFBmMS56LCBQZjAudykpOwogICAgZmxvYXQgbjAxMTAgPSBkb3QoZzAxMTAsIHZlYzQoUGYwLngsIFBmMS55eiwgUGYwLncpKTsKICAgIGZsb2F0IG4xMTEwID0gZG90KGcxMTEwLCB2ZWM0KFBmMS54eXosIFBmMC53KSk7CiAgICBmbG9hdCBuMDAwMSA9IGRvdChnMDAwMSwgdmVjNChQZjAueHl6LCBQZjEudykpOwogICAgZmxvYXQgbjEwMDEgPSBkb3QoZzEwMDEsIHZlYzQoUGYxLngsIFBmMC55eiwgUGYxLncpKTsKICAgIGZsb2F0IG4wMTAxID0gZG90KGcwMTAxLCB2ZWM0KFBmMC54LCBQZjEueSwgUGYwLnosIFBmMS53KSk7CiAgICBmbG9hdCBuMTEwMSA9IGRvdChnMTEwMSwgdmVjNChQZjEueHksIFBmMC56LCBQZjEudykpOwogICAgZmxvYXQgbjAwMTEgPSBkb3QoZzAwMTEsIHZlYzQoUGYwLnh5LCBQZjEuencpKTsKICAgIGZsb2F0IG4xMDExID0gZG90KGcxMDExLCB2ZWM0KFBmMS54LCBQZjAueSwgUGYxLnp3KSk7CiAgICBmbG9hdCBuMDExMSA9IGRvdChnMDExMSwgdmVjNChQZjAueCwgUGYxLnl6dykpOwogICAgZmxvYXQgbjExMTEgPSBkb3QoZzExMTEsIFBmMSk7CgogICAgdmVjNCBmYWRlX3h5encgPSBxdWludGljKFBmMCk7CiAgICB2ZWM0IG5fMHcgPSBtaXgodmVjNChuMDAwMCwgbjEwMDAsIG4wMTAwLCBuMTEwMCksIHZlYzQobjAwMDEsIG4xMDAxLCBuMDEwMSwgbjExMDEpLCBmYWRlX3h5encudyk7CiAgICB2ZWM0IG5fMXcgPSBtaXgodmVjNChuMDAxMCwgbjEwMTAsIG4wMTEwLCBuMTExMCksIHZlYzQobjAwMTEsIG4xMDExLCBuMDExMSwgbjExMTEpLCBmYWRlX3h5encudyk7CiAgICB2ZWM0IG5fencgPSBtaXgobl8wdywgbl8xdywgZmFkZV94eXp3LnopOwogICAgdmVjMiBuX3l6dyA9IG1peChuX3p3Lnh5LCBuX3p3Lnp3LCBmYWRlX3h5encueSk7CiAgICBmbG9hdCBuX3h5encgPSBtaXgobl95encueCwgbl95encueSwgZmFkZV94eXp3LngpOwogICAgcmV0dXJuIDIuMiAqIG5feHl6dzsKfQojZW5kaWYKCgoKCgoKI2lmbmRlZiBTUkdCX0VQU0lMT04gCiNkZWZpbmUgU1JHQl9FUFNJTE9OIDAuMDAwMDAwMDEKI2VuZGlmCgojaWZuZGVmIEZOQ19TUkdCMlJHQgojZGVmaW5lIEZOQ19TUkdCMlJHQgoKCgoKZmxvYXQgc3JnYjJyZ2IoZmxvYXQgY2hhbm5lbCkgewogICAgcmV0dXJuIChjaGFubmVsIDwgMC4wNDA0NSkgPyBjaGFubmVsICogMC4wNzczOTkzODA4IDogcG93KChjaGFubmVsICsgMC4wNTUpICogMC45NDc4NjcyOTg1NzgxOTksIDIuNCk7Cn0KCnZlYzMgc3JnYjJyZ2IodmVjMyBzcmdiKSB7CiAgICByZXR1cm4gdmVjMyhzcmdiMnJnYihzcmdiLnIgKyBTUkdCX0VQU0lMT04pLCAKICAgICAgICAgICAgICAgIHNyZ2IycmdiKHNyZ2IuZyArIFNSR0JfRVBTSUxPTiksICAgICAgICAgICAgICAgICBzcmdiMnJnYihzcmdiLmIgKyBTUkdCX0VQU0lMT04pKTsKfQoKdmVjNCBzcmdiMnJnYih2ZWM0IHNyZ2IpIHsKICAgIHJldHVybiB2ZWM0KHNyZ2IycmdiKHNyZ2IucmdiKSwgc3JnYi5hKTsKfQoKI2VuZGlmCgoKI2lmICFkZWZpbmVkKEZOQ19TQVRVUkFURSkgJiYgIWRlZmluZWQoc2F0dXJhdGUpCiNkZWZpbmUgRk5DX1NBVFVSQVRFCiNkZWZpbmUgc2F0dXJhdGUoeCkgY2xhbXAoeCwgMC4wLCAxLjApCiNlbmRpZgoKCgojaWZuZGVmIFNSR0JfRVBTSUxPTiAKI2RlZmluZSBTUkdCX0VQU0lMT04gMC4wMDAwMDAwMQojZW5kaWYKCiNpZm5kZWYgRk5DX1JHQjJTUkdCCiNkZWZpbmUgRk5DX1JHQjJTUkdCCgoKZmxvYXQgcmdiMnNyZ2IoZmxvYXQgY2hhbm5lbCkgewogICAgcmV0dXJuIChjaGFubmVsIDwgMC4wMDMxMzA4KSA/IGNoYW5uZWwgKiAxMi45MiA6IDEuMDU1ICogcG93KGNoYW5uZWwsIDAuNDE2NjY2NjY2NjY2NjY2NykgLSAwLjA1NTsKfQoKdmVjMyByZ2Iyc3JnYih2ZWMzIHJnYikgewogICAgcmV0dXJuIHNhdHVyYXRlKHZlYzMocmdiMnNyZ2IocmdiLnIgLSBTUkdCX0VQU0lMT04pLCByZ2Iyc3JnYihyZ2IuZyAtIFNSR0JfRVBTSUxPTiksIHJnYjJzcmdiKHJnYi5iIC0gU1JHQl9FUFNJTE9OKSkpOwp9Cgp2ZWM0IHJnYjJzcmdiKHZlYzQgcmdiKSB7CiAgICByZXR1cm4gdmVjNChyZ2Iyc3JnYihyZ2IucmdiKSwgcmdiLmEpOwp9CgojZW5kaWYKCgoKI2lmbmRlZiBGTkNfTUlYT0tMQUIKI2RlZmluZSBGTkNfTUlYT0tMQUIKdmVjMyBtaXhPa2xhYiggdmVjMyBjb2xBLCB2ZWMzIGNvbEIsIGZsb2F0IGggKSB7CgogICAgI2lmZGVmIE1JWE9LTEFCX0NPTE9SU1BBQ0VfU1JHQgogICAgY29sQSA9IHNyZ2IycmdiKGNvbEEpOwogICAgY29sQiA9IHNyZ2IycmdiKGNvbEIpOwogICAgI2VuZGlmCgogICAgCiAgICBjb25zdCBtYXQzIGtDT05FdG9MTVMgPSBtYXQzKCAgICAgICAgICAgICAgICAKICAgICAgICAgMC40MTIxNjU2MTIwLCAgMC4yMTE4NTkxMDcwLCAgMC4wODgzMDk3OTQ3LAogICAgICAgICAwLjUzNjI3NTIwODAsICAwLjY4MDcxODk1ODQsICAwLjI4MTg0NzQxNzQsCiAgICAgICAgIDAuMDUxNDU3NTY1MywgIDAuMTA3NDA2NTc5MCwgIDAuNjMwMjYxMzYxNik7CiAgICBjb25zdCBtYXQzIGtMTVN0b0NPTkUgPSBtYXQzKAogICAgICAgICA0LjA3NjcyNDUyOTMsIC0xLjI2ODE0Mzc3MzEsIC0wLjAwNDExMTk4ODUsCiAgICAgICAgLTMuMzA3MjE2ODgyNywgIDIuNjA5MzMyMzIzMSwgLTAuNzAzNDc2MzA5OCwKICAgICAgICAgMC4yMzA3NTkwNTQ0LCAtMC4zNDExMzQ0MjkwLCAgMS43MDY4NjI1Njg5KTsKICAgICAgICAgICAgICAgICAgICAKICAgIAogICAgdmVjMyBsbXNBID0gcG93KCBrQ09ORXRvTE1TICogY29sQSwgdmVjMygxLjAvMy4wKSApOwogICAgdmVjMyBsbXNCID0gcG93KCBrQ09ORXRvTE1TICogY29sQiwgdmVjMygxLjAvMy4wKSApOwogICAgCiAgICB2ZWMzIGxtcyA9IG1peCggbG1zQSwgbG1zQiwgaCApOwogICAgCiAgICAKICAgIHZlYzMgcmdiID0ga0xNU3RvQ09ORSoobG1zKmxtcypsbXMpOwoKICAgICNpZmRlZiBNSVhPS0xBQl9DT0xPUlNQQUNFX1NSR0IKICAgIHJldHVybiByZ2Iyc3JnYihyZ2IpOwogICAgI2Vsc2UKICAgIHJldHVybiByZ2I7CiAgICAjZW5kaWYKfQoKdmVjNCBtaXhPa2xhYiggdmVjNCBjb2xBLCB2ZWM0IGNvbEIsIGZsb2F0IGggKSB7CiAgICByZXR1cm4gdmVjNCggbWl4T2tsYWIoY29sQS5yZ2IsIGNvbEIucmdiLCBoKSwgbWl4KGNvbEEuYSwgY29sQi5hLCBoKSApOwp9CiNlbmRpZgoKCgp2b2lkIG1haW4oKSB7CgogIHZlYzIgcGl4ZWwgPSAxLjAvdV9yZXNvbHV0aW9uLnh5OwoKICB2ZWMyIHN0ID0gZ2xfRnJhZ0Nvb3JkLnh5ICogcGl4ZWw7CgogICAgCgogIGZsb2F0IGRpc3RvcnQgPSB2RGlzcGxhY2VtZW50ICogdV9pbnRlbnNpdHk7CgogIHZlYzIgdmFsID0gYWJzKHZVdiAtIDAuNSkgKiAzLjAgICogKDEuMCAtIGRpc3RvcnQpOwoKICAKCiAgdmVjNCBjb2xvciA9IHZlYzQodmVjMyh2YWwsdV9jb2xvcnNbMF0uYiksMS4wKTsKCiAgY29sb3IgPSBtaXhPa2xhYih1X2NvbG9yc1swXSwgdV9jb2xvcnNbMV0sIHZEaXNwbGFjZW1lbnQpOwoKICAKCiAgZ2xfRnJhZ0NvbG9yID0gY29sb3I7Cgp9CgpgLAogICAgICAgICAgICAgICAgdmVydGV4U2hhZGVyOiBgLy9HZW9tZXRyeTogcGxhbmUKCi8vT3JiaXRDb250cm9sczogZmFsc2UKCi8vR2VvbWV0cnktYXJnczogWzMsMSwyMDQ4XQoKLy9NZXNoLXNjYWxlOiAxLjUKCi8vTWVzaC1yb3RhdGlvbjogWy0wLjc1LDAuMjUsLTAuMjVdCgovL2NhbWVyYS1wb3NpdGlvbjogWzAuMCwgMC4wLCAyLjBdCgovL3NoYWRlci13aXJlZnJhbWU6IGZhbHNlIAoKCgp1bmlmb3JtIGZsb2F0IHVfaW50ZW5zaXR5OwoKdW5pZm9ybSBmbG9hdCB1X3RpbWU7Cgp1bmlmb3JtIGZsb2F0IHVfc3BlZWQ7Cgp1bmlmb3JtIGJvb2wgdV9yb3RhdGU7Cgp1bmlmb3JtIGZsb2F0IHVfc2NhbGU7CgoKCnZhcnlpbmcgdmVjMiB2VXY7Cgp2YXJ5aW5nIGZsb2F0IHZEaXNwbGFjZW1lbnQ7Cgp2YXJ5aW5nIHZlYzMgcG9zOwoKCgoKCgoKI2lmbmRlZiBGTkNfTU9EMjg5CiNkZWZpbmUgRk5DX01PRDI4OQoKZmxvYXQgbW9kMjg5KGNvbnN0IGluIGZsb2F0IHgpIHsgcmV0dXJuIHggLSBmbG9vcih4ICogKDEuIC8gMjg5LikpICogMjg5LjsgfQp2ZWMyIG1vZDI4OShjb25zdCBpbiB2ZWMyIHgpIHsgcmV0dXJuIHggLSBmbG9vcih4ICogKDEuIC8gMjg5LikpICogMjg5LjsgfQp2ZWMzIG1vZDI4OShjb25zdCBpbiB2ZWMzIHgpIHsgcmV0dXJuIHggLSBmbG9vcih4ICogKDEuIC8gMjg5LikpICogMjg5LjsgfQp2ZWM0IG1vZDI4OShjb25zdCBpbiB2ZWM0IHgpIHsgcmV0dXJuIHggLSBmbG9vcih4ICogKDEuIC8gMjg5LikpICogMjg5LjsgfQoKI2VuZGlmCgoKCgoKI2lmbmRlZiBGTkNfUEVSTVVURQojZGVmaW5lIEZOQ19QRVJNVVRFCgpmbG9hdCBwZXJtdXRlKGNvbnN0IGluIGZsb2F0IHgpIHsgcmV0dXJuIG1vZDI4OSgoKHggKiAzNC4wKSArIDEuMCkgKiB4KTsgfQp2ZWMyIHBlcm11dGUoY29uc3QgaW4gdmVjMiB4KSB7IHJldHVybiBtb2QyODkoKCh4ICogMzQuMCkgKyAxLjApICogeCk7IH0KdmVjMyBwZXJtdXRlKGNvbnN0IGluIHZlYzMgeCkgeyByZXR1cm4gbW9kMjg5KCgoeCAqIDM0LjApICsgMS4wKSAqIHgpOyB9CnZlYzQgcGVybXV0ZShjb25zdCBpbiB2ZWM0IHgpIHsgcmV0dXJuIG1vZDI4OSgoKHggKiAzNC4wKSArIDEuMCkgKiB4KTsgfQoKI2VuZGlmCgoKCiNpZm5kZWYgRk5DX1RBWUxPUklOVlNRUlQKI2RlZmluZSBGTkNfVEFZTE9SSU5WU1FSVApmbG9hdCB0YXlsb3JJbnZTcXJ0KGluIGZsb2F0IHIpIHsgcmV0dXJuIDEuNzkyODQyOTE0MDAxNTkgLSAwLjg1MzczNDcyMDk1MzE0ICogcjsgfQp2ZWMyIHRheWxvckludlNxcnQoaW4gdmVjMiByKSB7IHJldHVybiAxLjc5Mjg0MjkxNDAwMTU5IC0gMC44NTM3MzQ3MjA5NTMxNCAqIHI7IH0KdmVjMyB0YXlsb3JJbnZTcXJ0KGluIHZlYzMgcikgeyByZXR1cm4gMS43OTI4NDI5MTQwMDE1OSAtIDAuODUzNzM0NzIwOTUzMTQgKiByOyB9CnZlYzQgdGF5bG9ySW52U3FydChpbiB2ZWM0IHIpIHsgcmV0dXJuIDEuNzkyODQyOTE0MDAxNTkgLSAwLjg1MzczNDcyMDk1MzE0ICogcjsgfQojZW5kaWYKCgojaWZuZGVmIEZOQ19RVUlOVElDCiNkZWZpbmUgRk5DX1FVSU5USUMgCgpmbG9hdCBxdWludGljKGNvbnN0IGluIGZsb2F0IHYpIHsgcmV0dXJuIHYqdip2Kih2Kih2KjYuMC0xNS4wKSsxMC4wKTsgfQp2ZWMyICBxdWludGljKGNvbnN0IGluIHZlYzIgdikgIHsgcmV0dXJuIHYqdip2Kih2Kih2KjYuMC0xNS4wKSsxMC4wKTsgfQp2ZWMzICBxdWludGljKGNvbnN0IGluIHZlYzMgdikgIHsgcmV0dXJuIHYqdip2Kih2Kih2KjYuMC0xNS4wKSsxMC4wKTsgfQp2ZWM0ICBxdWludGljKGNvbnN0IGluIHZlYzQgdikgIHsgcmV0dXJuIHYqdip2Kih2Kih2KjYuMC0xNS4wKSsxMC4wKTsgfQoKI2VuZGlmCgoKCiNpZm5kZWYgRk5DX0NOT0lTRQojZGVmaW5lIEZOQ19DTk9JU0UKCmZsb2F0IGNub2lzZShpbiB2ZWMyIFApIHsKICAgIHZlYzQgUGkgPSBmbG9vcihQLnh5eHkpICsgdmVjNCgwLjAsIDAuMCwgMS4wLCAxLjApOwogICAgdmVjNCBQZiA9IGZyYWN0KFAueHl4eSkgLSB2ZWM0KDAuMCwgMC4wLCAxLjAsIDEuMCk7CiAgICBQaSA9IG1vZDI4OShQaSk7IAogICAgdmVjNCBpeCA9IFBpLnh6eHo7CiAgICB2ZWM0IGl5ID0gUGkueXl3dzsKICAgIHZlYzQgZnggPSBQZi54enh6OwogICAgdmVjNCBmeSA9IFBmLnl5d3c7CgogICAgdmVjNCBpID0gcGVybXV0ZShwZXJtdXRlKGl4KSArIGl5KTsKCiAgICB2ZWM0IGd4ID0gZnJhY3QoaSAqICgxLjAgLyA0MS4wKSkgKiAyLjAgLSAxLjAgOwogICAgdmVjNCBneSA9IGFicyhneCkgLSAwLjUgOwogICAgdmVjNCB0eCA9IGZsb29yKGd4ICsgMC41KTsKICAgIGd4ID0gZ3ggLSB0eDsKCiAgICB2ZWMyIGcwMCA9IHZlYzIoZ3gueCxneS54KTsKICAgIHZlYzIgZzEwID0gdmVjMihneC55LGd5LnkpOwogICAgdmVjMiBnMDEgPSB2ZWMyKGd4LnosZ3kueik7CiAgICB2ZWMyIGcxMSA9IHZlYzIoZ3gudyxneS53KTsKCiAgICB2ZWM0IG5vcm0gPSB0YXlsb3JJbnZTcXJ0KHZlYzQoZG90KGcwMCwgZzAwKSwgZG90KGcwMSwgZzAxKSwgZG90KGcxMCwgZzEwKSwgZG90KGcxMSwgZzExKSkpOwogICAgZzAwICo9IG5vcm0ueDsKICAgIGcwMSAqPSBub3JtLnk7CiAgICBnMTAgKj0gbm9ybS56OwogICAgZzExICo9IG5vcm0udzsKCiAgICBmbG9hdCBuMDAgPSBkb3QoZzAwLCB2ZWMyKGZ4LngsIGZ5LngpKTsKICAgIGZsb2F0IG4xMCA9IGRvdChnMTAsIHZlYzIoZngueSwgZnkueSkpOwogICAgZmxvYXQgbjAxID0gZG90KGcwMSwgdmVjMihmeC56LCBmeS56KSk7CiAgICBmbG9hdCBuMTEgPSBkb3QoZzExLCB2ZWMyKGZ4LncsIGZ5LncpKTsKCiAgICB2ZWMyIGZhZGVfeHkgPSBxdWludGljKFBmLnh5KTsKICAgIHZlYzIgbl94ID0gbWl4KHZlYzIobjAwLCBuMDEpLCB2ZWMyKG4xMCwgbjExKSwgZmFkZV94eS54KTsKICAgIGZsb2F0IG5feHkgPSBtaXgobl94LngsIG5feC55LCBmYWRlX3h5LnkpOwogICAgcmV0dXJuIDIuMyAqIG5feHk7Cn0KCmZsb2F0IGNub2lzZShpbiB2ZWMzIFApIHsKICAgIHZlYzMgUGkwID0gZmxvb3IoUCk7IAogICAgdmVjMyBQaTEgPSBQaTAgKyB2ZWMzKDEuMCk7IAogICAgUGkwID0gbW9kMjg5KFBpMCk7CiAgICBQaTEgPSBtb2QyODkoUGkxKTsKICAgIHZlYzMgUGYwID0gZnJhY3QoUCk7IAogICAgdmVjMyBQZjEgPSBQZjAgLSB2ZWMzKDEuMCk7IAogICAgdmVjNCBpeCA9IHZlYzQoUGkwLngsIFBpMS54LCBQaTAueCwgUGkxLngpOwogICAgdmVjNCBpeSA9IHZlYzQoUGkwLnl5LCBQaTEueXkpOwogICAgdmVjNCBpejAgPSBQaTAuenp6ejsKICAgIHZlYzQgaXoxID0gUGkxLnp6eno7CgogICAgdmVjNCBpeHkgPSBwZXJtdXRlKHBlcm11dGUoaXgpICsgaXkpOwogICAgdmVjNCBpeHkwID0gcGVybXV0ZShpeHkgKyBpejApOwogICAgdmVjNCBpeHkxID0gcGVybXV0ZShpeHkgKyBpejEpOwoKICAgIHZlYzQgZ3gwID0gaXh5MCAqICgxLjAgLyA3LjApOwogICAgdmVjNCBneTAgPSBmcmFjdChmbG9vcihneDApICogKDEuMCAvIDcuMCkpIC0gMC41OwogICAgZ3gwID0gZnJhY3QoZ3gwKTsKICAgIHZlYzQgZ3owID0gdmVjNCgwLjUpIC0gYWJzKGd4MCkgLSBhYnMoZ3kwKTsKICAgIHZlYzQgc3owID0gc3RlcChnejAsIHZlYzQoMC4wKSk7CiAgICBneDAgLT0gc3owICogKHN0ZXAoMC4wLCBneDApIC0gMC41KTsKICAgIGd5MCAtPSBzejAgKiAoc3RlcCgwLjAsIGd5MCkgLSAwLjUpOwoKICAgIHZlYzQgZ3gxID0gaXh5MSAqICgxLjAgLyA3LjApOwogICAgdmVjNCBneTEgPSBmcmFjdChmbG9vcihneDEpICogKDEuMCAvIDcuMCkpIC0gMC41OwogICAgZ3gxID0gZnJhY3QoZ3gxKTsKICAgIHZlYzQgZ3oxID0gdmVjNCgwLjUpIC0gYWJzKGd4MSkgLSBhYnMoZ3kxKTsKICAgIHZlYzQgc3oxID0gc3RlcChnejEsIHZlYzQoMC4wKSk7CiAgICBneDEgLT0gc3oxICogKHN0ZXAoMC4wLCBneDEpIC0gMC41KTsKICAgIGd5MSAtPSBzejEgKiAoc3RlcCgwLjAsIGd5MSkgLSAwLjUpOwoKICAgIHZlYzMgZzAwMCA9IHZlYzMoZ3gwLngsZ3kwLngsZ3owLngpOwogICAgdmVjMyBnMTAwID0gdmVjMyhneDAueSxneTAueSxnejAueSk7CiAgICB2ZWMzIGcwMTAgPSB2ZWMzKGd4MC56LGd5MC56LGd6MC56KTsKICAgIHZlYzMgZzExMCA9IHZlYzMoZ3gwLncsZ3kwLncsZ3owLncpOwogICAgdmVjMyBnMDAxID0gdmVjMyhneDEueCxneTEueCxnejEueCk7CiAgICB2ZWMzIGcxMDEgPSB2ZWMzKGd4MS55LGd5MS55LGd6MS55KTsKICAgIHZlYzMgZzAxMSA9IHZlYzMoZ3gxLnosZ3kxLnosZ3oxLnopOwogICAgdmVjMyBnMTExID0gdmVjMyhneDEudyxneTEudyxnejEudyk7CgogICAgdmVjNCBub3JtMCA9IHRheWxvckludlNxcnQodmVjNChkb3QoZzAwMCwgZzAwMCksIGRvdChnMDEwLCBnMDEwKSwgZG90KGcxMDAsIGcxMDApLCBkb3QoZzExMCwgZzExMCkpKTsKICAgIGcwMDAgKj0gbm9ybTAueDsKICAgIGcwMTAgKj0gbm9ybTAueTsKICAgIGcxMDAgKj0gbm9ybTAuejsKICAgIGcxMTAgKj0gbm9ybTAudzsKICAgIHZlYzQgbm9ybTEgPSB0YXlsb3JJbnZTcXJ0KHZlYzQoZG90KGcwMDEsIGcwMDEpLCBkb3QoZzAxMSwgZzAxMSksIGRvdChnMTAxLCBnMTAxKSwgZG90KGcxMTEsIGcxMTEpKSk7CiAgICBnMDAxICo9IG5vcm0xLng7CiAgICBnMDExICo9IG5vcm0xLnk7CiAgICBnMTAxICo9IG5vcm0xLno7CiAgICBnMTExICo9IG5vcm0xLnc7CgogICAgZmxvYXQgbjAwMCA9IGRvdChnMDAwLCBQZjApOwogICAgZmxvYXQgbjEwMCA9IGRvdChnMTAwLCB2ZWMzKFBmMS54LCBQZjAueXopKTsKICAgIGZsb2F0IG4wMTAgPSBkb3QoZzAxMCwgdmVjMyhQZjAueCwgUGYxLnksIFBmMC56KSk7CiAgICBmbG9hdCBuMTEwID0gZG90KGcxMTAsIHZlYzMoUGYxLnh5LCBQZjAueikpOwogICAgZmxvYXQgbjAwMSA9IGRvdChnMDAxLCB2ZWMzKFBmMC54eSwgUGYxLnopKTsKICAgIGZsb2F0IG4xMDEgPSBkb3QoZzEwMSwgdmVjMyhQZjEueCwgUGYwLnksIFBmMS56KSk7CiAgICBmbG9hdCBuMDExID0gZG90KGcwMTEsIHZlYzMoUGYwLngsIFBmMS55eikpOwogICAgZmxvYXQgbjExMSA9IGRvdChnMTExLCBQZjEpOwoKICAgIHZlYzMgZmFkZV94eXogPSBxdWludGljKFBmMCk7CiAgICB2ZWM0IG5feiA9IG1peCh2ZWM0KG4wMDAsIG4xMDAsIG4wMTAsIG4xMTApLCB2ZWM0KG4wMDEsIG4xMDEsIG4wMTEsIG4xMTEpLCBmYWRlX3h5ei56KTsKICAgIHZlYzIgbl95eiA9IG1peChuX3oueHksIG5fei56dywgZmFkZV94eXoueSk7CiAgICBmbG9hdCBuX3h5eiA9IG1peChuX3l6LngsIG5feXoueSwgZmFkZV94eXoueCk7CiAgICByZXR1cm4gMi4yICogbl94eXo7Cn0KCmZsb2F0IGNub2lzZShpbiB2ZWM0IFApIHsKICAgIHZlYzQgUGkwID0gZmxvb3IoUCk7IAogICAgdmVjNCBQaTEgPSBQaTAgKyAxLjA7IAogICAgUGkwID0gbW9kMjg5KFBpMCk7CiAgICBQaTEgPSBtb2QyODkoUGkxKTsKICAgIHZlYzQgUGYwID0gZnJhY3QoUCk7IAogICAgdmVjNCBQZjEgPSBQZjAgLSAxLjA7IAogICAgdmVjNCBpeCA9IHZlYzQoUGkwLngsIFBpMS54LCBQaTAueCwgUGkxLngpOwogICAgdmVjNCBpeSA9IHZlYzQoUGkwLnl5LCBQaTEueXkpOwogICAgdmVjNCBpejAgPSB2ZWM0KFBpMC56enp6KTsKICAgIHZlYzQgaXoxID0gdmVjNChQaTEuenp6eik7CiAgICB2ZWM0IGl3MCA9IHZlYzQoUGkwLnd3d3cpOwogICAgdmVjNCBpdzEgPSB2ZWM0KFBpMS53d3d3KTsKCiAgICB2ZWM0IGl4eSA9IHBlcm11dGUocGVybXV0ZShpeCkgKyBpeSk7CiAgICB2ZWM0IGl4eTAgPSBwZXJtdXRlKGl4eSArIGl6MCk7CiAgICB2ZWM0IGl4eTEgPSBwZXJtdXRlKGl4eSArIGl6MSk7CiAgICB2ZWM0IGl4eTAwID0gcGVybXV0ZShpeHkwICsgaXcwKTsKICAgIHZlYzQgaXh5MDEgPSBwZXJtdXRlKGl4eTAgKyBpdzEpOwogICAgdmVjNCBpeHkxMCA9IHBlcm11dGUoaXh5MSArIGl3MCk7CiAgICB2ZWM0IGl4eTExID0gcGVybXV0ZShpeHkxICsgaXcxKTsKCiAgICB2ZWM0IGd4MDAgPSBpeHkwMCAqICgxLjAgLyA3LjApOwogICAgdmVjNCBneTAwID0gZmxvb3IoZ3gwMCkgKiAoMS4wIC8gNy4wKTsKICAgIHZlYzQgZ3owMCA9IGZsb29yKGd5MDApICogKDEuMCAvIDYuMCk7CiAgICBneDAwID0gZnJhY3QoZ3gwMCkgLSAwLjU7CiAgICBneTAwID0gZnJhY3QoZ3kwMCkgLSAwLjU7CiAgICBnejAwID0gZnJhY3QoZ3owMCkgLSAwLjU7CiAgICB2ZWM0IGd3MDAgPSB2ZWM0KDAuNzUpIC0gYWJzKGd4MDApIC0gYWJzKGd5MDApIC0gYWJzKGd6MDApOwogICAgdmVjNCBzdzAwID0gc3RlcChndzAwLCB2ZWM0KDAuMCkpOwogICAgZ3gwMCAtPSBzdzAwICogKHN0ZXAoMC4wLCBneDAwKSAtIDAuNSk7CiAgICBneTAwIC09IHN3MDAgKiAoc3RlcCgwLjAsIGd5MDApIC0gMC41KTsKCiAgICB2ZWM0IGd4MDEgPSBpeHkwMSAqICgxLjAgLyA3LjApOwogICAgdmVjNCBneTAxID0gZmxvb3IoZ3gwMSkgKiAoMS4wIC8gNy4wKTsKICAgIHZlYzQgZ3owMSA9IGZsb29yKGd5MDEpICogKDEuMCAvIDYuMCk7CiAgICBneDAxID0gZnJhY3QoZ3gwMSkgLSAwLjU7CiAgICBneTAxID0gZnJhY3QoZ3kwMSkgLSAwLjU7CiAgICBnejAxID0gZnJhY3QoZ3owMSkgLSAwLjU7CiAgICB2ZWM0IGd3MDEgPSB2ZWM0KDAuNzUpIC0gYWJzKGd4MDEpIC0gYWJzKGd5MDEpIC0gYWJzKGd6MDEpOwogICAgdmVjNCBzdzAxID0gc3RlcChndzAxLCB2ZWM0KDAuMCkpOwogICAgZ3gwMSAtPSBzdzAxICogKHN0ZXAoMC4wLCBneDAxKSAtIDAuNSk7CiAgICBneTAxIC09IHN3MDEgKiAoc3RlcCgwLjAsIGd5MDEpIC0gMC41KTsKCiAgICB2ZWM0IGd4MTAgPSBpeHkxMCAqICgxLjAgLyA3LjApOwogICAgdmVjNCBneTEwID0gZmxvb3IoZ3gxMCkgKiAoMS4wIC8gNy4wKTsKICAgIHZlYzQgZ3oxMCA9IGZsb29yKGd5MTApICogKDEuMCAvIDYuMCk7CiAgICBneDEwID0gZnJhY3QoZ3gxMCkgLSAwLjU7CiAgICBneTEwID0gZnJhY3QoZ3kxMCkgLSAwLjU7CiAgICBnejEwID0gZnJhY3QoZ3oxMCkgLSAwLjU7CiAgICB2ZWM0IGd3MTAgPSB2ZWM0KDAuNzUpIC0gYWJzKGd4MTApIC0gYWJzKGd5MTApIC0gYWJzKGd6MTApOwogICAgdmVjNCBzdzEwID0gc3RlcChndzEwLCB2ZWM0KDAuMCkpOwogICAgZ3gxMCAtPSBzdzEwICogKHN0ZXAoMC4wLCBneDEwKSAtIDAuNSk7CiAgICBneTEwIC09IHN3MTAgKiAoc3RlcCgwLjAsIGd5MTApIC0gMC41KTsKCiAgICB2ZWM0IGd4MTEgPSBpeHkxMSAqICgxLjAgLyA3LjApOwogICAgdmVjNCBneTExID0gZmxvb3IoZ3gxMSkgKiAoMS4wIC8gNy4wKTsKICAgIHZlYzQgZ3oxMSA9IGZsb29yKGd5MTEpICogKDEuMCAvIDYuMCk7CiAgICBneDExID0gZnJhY3QoZ3gxMSkgLSAwLjU7CiAgICBneTExID0gZnJhY3QoZ3kxMSkgLSAwLjU7CiAgICBnejExID0gZnJhY3QoZ3oxMSkgLSAwLjU7CiAgICB2ZWM0IGd3MTEgPSB2ZWM0KDAuNzUpIC0gYWJzKGd4MTEpIC0gYWJzKGd5MTEpIC0gYWJzKGd6MTEpOwogICAgdmVjNCBzdzExID0gc3RlcChndzExLCB2ZWM0KDAuMCkpOwogICAgZ3gxMSAtPSBzdzExICogKHN0ZXAoMC4wLCBneDExKSAtIDAuNSk7CiAgICBneTExIC09IHN3MTEgKiAoc3RlcCgwLjAsIGd5MTEpIC0gMC41KTsKCiAgICB2ZWM0IGcwMDAwID0gdmVjNChneDAwLngsZ3kwMC54LGd6MDAueCxndzAwLngpOwogICAgdmVjNCBnMTAwMCA9IHZlYzQoZ3gwMC55LGd5MDAueSxnejAwLnksZ3cwMC55KTsKICAgIHZlYzQgZzAxMDAgPSB2ZWM0KGd4MDAueixneTAwLnosZ3owMC56LGd3MDAueik7CiAgICB2ZWM0IGcxMTAwID0gdmVjNChneDAwLncsZ3kwMC53LGd6MDAudyxndzAwLncpOwogICAgdmVjNCBnMDAxMCA9IHZlYzQoZ3gxMC54LGd5MTAueCxnejEwLngsZ3cxMC54KTsKICAgIHZlYzQgZzEwMTAgPSB2ZWM0KGd4MTAueSxneTEwLnksZ3oxMC55LGd3MTAueSk7CiAgICB2ZWM0IGcwMTEwID0gdmVjNChneDEwLnosZ3kxMC56LGd6MTAueixndzEwLnopOwogICAgdmVjNCBnMTExMCA9IHZlYzQoZ3gxMC53LGd5MTAudyxnejEwLncsZ3cxMC53KTsKICAgIHZlYzQgZzAwMDEgPSB2ZWM0KGd4MDEueCxneTAxLngsZ3owMS54LGd3MDEueCk7CiAgICB2ZWM0IGcxMDAxID0gdmVjNChneDAxLnksZ3kwMS55LGd6MDEueSxndzAxLnkpOwogICAgdmVjNCBnMDEwMSA9IHZlYzQoZ3gwMS56LGd5MDEueixnejAxLnosZ3cwMS56KTsKICAgIHZlYzQgZzExMDEgPSB2ZWM0KGd4MDEudyxneTAxLncsZ3owMS53LGd3MDEudyk7CiAgICB2ZWM0IGcwMDExID0gdmVjNChneDExLngsZ3kxMS54LGd6MTEueCxndzExLngpOwogICAgdmVjNCBnMTAxMSA9IHZlYzQoZ3gxMS55LGd5MTEueSxnejExLnksZ3cxMS55KTsKICAgIHZlYzQgZzAxMTEgPSB2ZWM0KGd4MTEueixneTExLnosZ3oxMS56LGd3MTEueik7CiAgICB2ZWM0IGcxMTExID0gdmVjNChneDExLncsZ3kxMS53LGd6MTEudyxndzExLncpOwoKICAgIHZlYzQgbm9ybTAwID0gdGF5bG9ySW52U3FydCh2ZWM0KGRvdChnMDAwMCwgZzAwMDApLCBkb3QoZzAxMDAsIGcwMTAwKSwgZG90KGcxMDAwLCBnMTAwMCksIGRvdChnMTEwMCwgZzExMDApKSk7CiAgICBnMDAwMCAqPSBub3JtMDAueDsKICAgIGcwMTAwICo9IG5vcm0wMC55OwogICAgZzEwMDAgKj0gbm9ybTAwLno7CiAgICBnMTEwMCAqPSBub3JtMDAudzsKCiAgICB2ZWM0IG5vcm0wMSA9IHRheWxvckludlNxcnQodmVjNChkb3QoZzAwMDEsIGcwMDAxKSwgZG90KGcwMTAxLCBnMDEwMSksIGRvdChnMTAwMSwgZzEwMDEpLCBkb3QoZzExMDEsIGcxMTAxKSkpOwogICAgZzAwMDEgKj0gbm9ybTAxLng7CiAgICBnMDEwMSAqPSBub3JtMDEueTsKICAgIGcxMDAxICo9IG5vcm0wMS56OwogICAgZzExMDEgKj0gbm9ybTAxLnc7CgogICAgdmVjNCBub3JtMTAgPSB0YXlsb3JJbnZTcXJ0KHZlYzQoZG90KGcwMDEwLCBnMDAxMCksIGRvdChnMDExMCwgZzAxMTApLCBkb3QoZzEwMTAsIGcxMDEwKSwgZG90KGcxMTEwLCBnMTExMCkpKTsKICAgIGcwMDEwICo9IG5vcm0xMC54OwogICAgZzAxMTAgKj0gbm9ybTEwLnk7CiAgICBnMTAxMCAqPSBub3JtMTAuejsKICAgIGcxMTEwICo9IG5vcm0xMC53OwoKICAgIHZlYzQgbm9ybTExID0gdGF5bG9ySW52U3FydCh2ZWM0KGRvdChnMDAxMSwgZzAwMTEpLCBkb3QoZzAxMTEsIGcwMTExKSwgZG90KGcxMDExLCBnMTAxMSksIGRvdChnMTExMSwgZzExMTEpKSk7CiAgICBnMDAxMSAqPSBub3JtMTEueDsKICAgIGcwMTExICo9IG5vcm0xMS55OwogICAgZzEwMTEgKj0gbm9ybTExLno7CiAgICBnMTExMSAqPSBub3JtMTEudzsKCiAgICBmbG9hdCBuMDAwMCA9IGRvdChnMDAwMCwgUGYwKTsKICAgIGZsb2F0IG4xMDAwID0gZG90KGcxMDAwLCB2ZWM0KFBmMS54LCBQZjAueXp3KSk7CiAgICBmbG9hdCBuMDEwMCA9IGRvdChnMDEwMCwgdmVjNChQZjAueCwgUGYxLnksIFBmMC56dykpOwogICAgZmxvYXQgbjExMDAgPSBkb3QoZzExMDAsIHZlYzQoUGYxLnh5LCBQZjAuencpKTsKICAgIGZsb2F0IG4wMDEwID0gZG90KGcwMDEwLCB2ZWM0KFBmMC54eSwgUGYxLnosIFBmMC53KSk7CiAgICBmbG9hdCBuMTAxMCA9IGRvdChnMTAxMCwgdmVjNChQZjEueCwgUGYwLnksIFBmMS56LCBQZjAudykpOwogICAgZmxvYXQgbjAxMTAgPSBkb3QoZzAxMTAsIHZlYzQoUGYwLngsIFBmMS55eiwgUGYwLncpKTsKICAgIGZsb2F0IG4xMTEwID0gZG90KGcxMTEwLCB2ZWM0KFBmMS54eXosIFBmMC53KSk7CiAgICBmbG9hdCBuMDAwMSA9IGRvdChnMDAwMSwgdmVjNChQZjAueHl6LCBQZjEudykpOwogICAgZmxvYXQgbjEwMDEgPSBkb3QoZzEwMDEsIHZlYzQoUGYxLngsIFBmMC55eiwgUGYxLncpKTsKICAgIGZsb2F0IG4wMTAxID0gZG90KGcwMTAxLCB2ZWM0KFBmMC54LCBQZjEueSwgUGYwLnosIFBmMS53KSk7CiAgICBmbG9hdCBuMTEwMSA9IGRvdChnMTEwMSwgdmVjNChQZjEueHksIFBmMC56LCBQZjEudykpOwogICAgZmxvYXQgbjAwMTEgPSBkb3QoZzAwMTEsIHZlYzQoUGYwLnh5LCBQZjEuencpKTsKICAgIGZsb2F0IG4xMDExID0gZG90KGcxMDExLCB2ZWM0KFBmMS54LCBQZjAueSwgUGYxLnp3KSk7CiAgICBmbG9hdCBuMDExMSA9IGRvdChnMDExMSwgdmVjNChQZjAueCwgUGYxLnl6dykpOwogICAgZmxvYXQgbjExMTEgPSBkb3QoZzExMTEsIFBmMSk7CgogICAgdmVjNCBmYWRlX3h5encgPSBxdWludGljKFBmMCk7CiAgICB2ZWM0IG5fMHcgPSBtaXgodmVjNChuMDAwMCwgbjEwMDAsIG4wMTAwLCBuMTEwMCksIHZlYzQobjAwMDEsIG4xMDAxLCBuMDEwMSwgbjExMDEpLCBmYWRlX3h5encudyk7CiAgICB2ZWM0IG5fMXcgPSBtaXgodmVjNChuMDAxMCwgbjEwMTAsIG4wMTEwLCBuMTExMCksIHZlYzQobjAwMTEsIG4xMDExLCBuMDExMSwgbjExMTEpLCBmYWRlX3h5encudyk7CiAgICB2ZWM0IG5fencgPSBtaXgobl8wdywgbl8xdywgZmFkZV94eXp3LnopOwogICAgdmVjMiBuX3l6dyA9IG1peChuX3p3Lnh5LCBuX3p3Lnp3LCBmYWRlX3h5encueSk7CiAgICBmbG9hdCBuX3h5encgPSBtaXgobl95encueCwgbl95encueSwgZmFkZV94eXp3LngpOwogICAgcmV0dXJuIDIuMiAqIG5feHl6dzsKfQojZW5kaWYKCgoKCgoKI2lmbmRlZiBSQU5ET01fU0NBTEUKI2lmIGRlZmluZWQoUkFORE9NX0hJR0hFUl9SQU5HRSkKI2RlZmluZSBSQU5ET01fU0NBTEUgdmVjNCguMTAzMSwgLjEwMzAsIC4wOTczLCAuMTA5OSkKI2Vsc2UKI2RlZmluZSBSQU5ET01fU0NBTEUgdmVjNCg0NDMuODk3LCA0NDEuNDIzLCAuMDk3MywgLjEwOTkpCiNlbmRpZgojZW5kaWYKCiNpZm5kZWYgRk5DX1JBTkRPTQojZGVmaW5lIEZOQ19SQU5ET00KZmxvYXQgcmFuZG9tKGluIGZsb2F0IHgpIHsKI2lmIGRlZmluZWQoUkFORE9NX1NJTkxFU1MpCiAgICB4ID0gZnJhY3QoeCAqIFJBTkRPTV9TQ0FMRS54KTsKICAgIHggKj0geCArIDMzLjMzOwogICAgeCAqPSB4ICsgeDsKICAgIHJldHVybiBmcmFjdCh4KTsKI2Vsc2UKICAgIHJldHVybiBmcmFjdChzaW4oeCkgKiA0Mzc1OC41NDUzKTsKI2VuZGlmCn0KCmZsb2F0IHJhbmRvbShpbiB2ZWMyIHN0KSB7CiNpZiBkZWZpbmVkKFJBTkRPTV9TSU5MRVNTKQogICAgdmVjMyBwMyAgPSBmcmFjdCh2ZWMzKHN0Lnh5eCkgKiBSQU5ET01fU0NBTEUueHl6KTsKICAgIHAzICs9IGRvdChwMywgcDMueXp4ICsgMzMuMzMpOwogICAgcmV0dXJuIGZyYWN0KChwMy54ICsgcDMueSkgKiBwMy56KTsKI2Vsc2UKICAgIHJldHVybiBmcmFjdChzaW4oZG90KHN0Lnh5LCB2ZWMyKDEyLjk4OTgsIDc4LjIzMykpKSAqIDQzNzU4LjU0NTMpOwojZW5kaWYKfQoKZmxvYXQgcmFuZG9tKGluIHZlYzMgcG9zKSB7CiNpZiBkZWZpbmVkKFJBTkRPTV9TSU5MRVNTKQogICAgcG9zICA9IGZyYWN0KHBvcyAqIFJBTkRPTV9TQ0FMRS54eXopOwogICAgcG9zICs9IGRvdChwb3MsIHBvcy56eXggKyAzMS4zMik7CiAgICByZXR1cm4gZnJhY3QoKHBvcy54ICsgcG9zLnkpICogcG9zLnopOwojZWxzZQogICAgcmV0dXJuIGZyYWN0KHNpbihkb3QocG9zLnh5eiwgdmVjMyg3MC45ODk4LCA3OC4yMzMsIDMyLjQzNTUpKSkgKiA0Mzc1OC41NDUzMTIzKTsKI2VuZGlmCn0KCmZsb2F0IHJhbmRvbShpbiB2ZWM0IHBvcykgewojaWYgZGVmaW5lZChSQU5ET01fU0lOTEVTUykKICAgIHBvcyA9IGZyYWN0KHBvcyAqIFJBTkRPTV9TQ0FMRSk7CiAgICBwb3MgKz0gZG90KHBvcywgcG9zLnd6eHkrMzMuMzMpOwogICAgcmV0dXJuIGZyYWN0KChwb3MueCArIHBvcy55KSAqIChwb3MueiArIHBvcy53KSk7CiNlbHNlCiAgICBmbG9hdCBkb3RfcHJvZHVjdCA9IGRvdChwb3MsIHZlYzQoMTIuOTg5OCw3OC4yMzMsNDUuMTY0LDk0LjY3MykpOwogICAgcmV0dXJuIGZyYWN0KHNpbihkb3RfcHJvZHVjdCkgKiA0Mzc1OC41NDUzKTsKI2VuZGlmCn0KCnZlYzIgcmFuZG9tMihmbG9hdCBwKSB7CiAgICB2ZWMzIHAzID0gZnJhY3QodmVjMyhwKSAqIFJBTkRPTV9TQ0FMRS54eXopOwogICAgcDMgKz0gZG90KHAzLCBwMy55enggKyAxOS4xOSk7CiAgICByZXR1cm4gZnJhY3QoKHAzLnh4ICsgcDMueXopICogcDMuenkpOwp9Cgp2ZWMyIHJhbmRvbTIodmVjMiBwKSB7CiAgICB2ZWMzIHAzID0gZnJhY3QocC54eXggKiBSQU5ET01fU0NBTEUueHl6KTsKICAgIHAzICs9IGRvdChwMywgcDMueXp4ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwMy54eCArIHAzLnl6KSAqIHAzLnp5KTsKfQoKdmVjMiByYW5kb20yKHZlYzMgcDMpIHsKICAgIHAzID0gZnJhY3QocDMgKiBSQU5ET01fU0NBTEUueHl6KTsKICAgIHAzICs9IGRvdChwMywgcDMueXp4ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwMy54eCArIHAzLnl6KSAqIHAzLnp5KTsKfQoKdmVjMyByYW5kb20zKGZsb2F0IHApIHsKICAgIHZlYzMgcDMgPSBmcmFjdCh2ZWMzKHApICogUkFORE9NX1NDQUxFLnh5eik7CiAgICBwMyArPSBkb3QocDMsIHAzLnl6eCArIDE5LjE5KTsKICAgIHJldHVybiBmcmFjdCgocDMueHh5ICsgcDMueXp6KSAqIHAzLnp5eCk7IAp9Cgp2ZWMzIHJhbmRvbTModmVjMiBwKSB7CiAgICB2ZWMzIHAzID0gZnJhY3QodmVjMyhwLnh5eCkgKiBSQU5ET01fU0NBTEUueHl6KTsKICAgIHAzICs9IGRvdChwMywgcDMueXh6ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwMy54eHkgKyBwMy55enopICogcDMuenl4KTsKfQoKdmVjMyByYW5kb20zKHZlYzMgcCkgewogICAgcCA9IGZyYWN0KHAgKiBSQU5ET01fU0NBTEUueHl6KTsKICAgIHAgKz0gZG90KHAsIHAueXh6ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwLnh4eSArIHAueXp6KSAqIHAuenl4KTsKfQoKdmVjNCByYW5kb200KGZsb2F0IHApIHsKICAgIHZlYzQgcDQgPSBmcmFjdChwICogUkFORE9NX1NDQUxFKTsKICAgIHA0ICs9IGRvdChwNCwgcDQud3p4eSArIDE5LjE5KTsKICAgIHJldHVybiBmcmFjdCgocDQueHh5eiArIHA0Lnl6encpICogcDQuenl3eCk7ICAgCn0KCnZlYzQgcmFuZG9tNCh2ZWMyIHApIHsKICAgIHZlYzQgcDQgPSBmcmFjdChwLnh5eHkgKiBSQU5ET01fU0NBTEUpOwogICAgcDQgKz0gZG90KHA0LCBwNC53enh5ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwNC54eHl6ICsgcDQueXp6dykgKiBwNC56eXd4KTsKfQoKdmVjNCByYW5kb200KHZlYzMgcCkgewogICAgdmVjNCBwNCA9IGZyYWN0KHAueHl6eCAgKiBSQU5ET01fU0NBTEUpOwogICAgcDQgKz0gZG90KHA0LCBwNC53enh5ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwNC54eHl6ICsgcDQueXp6dykgKiBwNC56eXd4KTsKfQoKdmVjNCByYW5kb200KHZlYzQgcDQpIHsKICAgIHA0ID0gZnJhY3QocDQgICogUkFORE9NX1NDQUxFKTsKICAgIHA0ICs9IGRvdChwNCwgcDQud3p4eSArIDE5LjE5KTsKICAgIHJldHVybiBmcmFjdCgocDQueHh5eiArIHA0Lnl6encpICogcDQuenl3eCk7Cn0KCgojZW5kaWYKCgoKI2lmbmRlZiBGTkNfU1JBTkRPTQojZGVmaW5lIEZOQ19TUkFORE9NCgpmbG9hdCBzcmFuZG9tKGluIGZsb2F0IHgpIHsKICByZXR1cm4gLTEuICsgMi4gKiBmcmFjdChzaW4oeCkgKiA0Mzc1OC41NDUzKTsKfQoKZmxvYXQgc3JhbmRvbShpbiB2ZWMyIHN0KSB7CiAgcmV0dXJuIC0xLiArIDIuICogZnJhY3Qoc2luKGRvdChzdC54eSwgdmVjMigxMi45ODk4LCA3OC4yMzMpKSkgKiA0Mzc1OC41NDUzKTsKfQoKZmxvYXQgc3JhbmRvbShpbiB2ZWMzIHBvcykgewogIHJldHVybiAtMS4gKyAyLiAqIGZyYWN0KHNpbihkb3QocG9zLnh5eiwgdmVjMyg3MC45ODk4LCA3OC4yMzMsIDMyLjQzNTUpKSkgKiA0Mzc1OC41NDUzMTIzKTsKfQoKZmxvYXQgc3JhbmRvbShpbiB2ZWM0IHBvcykgewogICAgZmxvYXQgZG90X3Byb2R1Y3QgPSBkb3QocG9zLCB2ZWM0KDEyLjk4OTgsNzguMjMzLDQ1LjE2NCw5NC42NzMpKTsKICAgIHJldHVybiAtMS4gKyAyLiAqIGZyYWN0KHNpbihkb3RfcHJvZHVjdCkgKiA0Mzc1OC41NDUzKTsKfQoKdmVjMiBzcmFuZG9tMihpbiB2ZWMyIHN0KSB7CiAgICBjb25zdCB2ZWMyIGsgPSB2ZWMyKC4zMTgzMDk5LCAuMzY3ODc5NCk7CiAgICBzdCA9IHN0ICogayArIGsueXg7CiAgICByZXR1cm4gLTEuICsgMi4gKiBmcmFjdCgxNi4gKiBrICogZnJhY3Qoc3QueCAqIHN0LnkgKiAoc3QueCArIHN0LnkpKSk7Cn0KCnZlYzMgc3JhbmRvbTMoaW4gdmVjMyBwKSB7CiAgICBwID0gdmVjMyggZG90KHAsIHZlYzMoMTI3LjEsIDMxMS43LCA3NC43KSksCiAgICAgICAgICAgIGRvdChwLCB2ZWMzKDI2OS41LCAxODMuMywgMjQ2LjEpKSwKICAgICAgICAgICAgZG90KHAsIHZlYzMoMTEzLjUsIDI3MS45LCAxMjQuNikpKTsKICAgIHJldHVybiAtMS4gKyAyLiAqIGZyYWN0KHNpbihwKSAqIDQzNzU4LjU0NTMxMjMpOwp9Cgp2ZWMyIHNyYW5kb20yKGluIHZlYzIgcCwgY29uc3QgaW4gZmxvYXQgdGlsZUxlbmd0aCkgewogICAgcCA9IG1vZChwLCB2ZWMyKHRpbGVMZW5ndGgpKTsKICAgIHJldHVybiBzcmFuZG9tMihwKTsKfQoKdmVjMyBzcmFuZG9tMyhpbiB2ZWMzIHAsIGNvbnN0IGluIGZsb2F0IHRpbGVMZW5ndGgpIHsKICAgIHAgPSBtb2QocCwgdmVjMyh0aWxlTGVuZ3RoKSk7CiAgICByZXR1cm4gc3JhbmRvbTMocCk7Cn0KCiNlbmRpZgoKCiNpZm5kZWYgRk5DX0NVQklDCiNkZWZpbmUgRk5DX0NVQklDIApmbG9hdCBjdWJpYyhjb25zdCBpbiBmbG9hdCB2KSB7IHJldHVybiB2KnYqKDMuMC0yLjAqdik7IH0KdmVjMiAgY3ViaWMoY29uc3QgaW4gdmVjMiB2KSAgeyByZXR1cm4gdip2KigzLjAtMi4wKnYpOyB9CnZlYzMgIGN1YmljKGNvbnN0IGluIHZlYzMgdikgIHsgcmV0dXJuIHYqdiooMy4wLTIuMCp2KTsgfQp2ZWM0ICBjdWJpYyhjb25zdCBpbiB2ZWM0IHYpICB7IHJldHVybiB2KnYqKDMuMC0yLjAqdik7IH0KCmZsb2F0IGN1YmljKGNvbnN0IGluIGZsb2F0IHZhbHVlLCBpbiBmbG9hdCBzbG9wZTAsIGluIGZsb2F0IHNsb3BlMSkgewogICAgZmxvYXQgYSA9IHNsb3BlMCArIHNsb3BlMSAtIDIuOwogICAgZmxvYXQgYiA9IC0yLiAqIHNsb3BlMCAtIHNsb3BlMSArIDMuOwogICAgZmxvYXQgYyA9IHNsb3BlMDsKICAgIGZsb2F0IHZhbHVlMiA9IHZhbHVlICogdmFsdWU7CiAgICBmbG9hdCB2YWx1ZTMgPSB2YWx1ZSAqIHZhbHVlMjsKICAgIHJldHVybiBhICogdmFsdWUzICsgYiAqIHZhbHVlMiArIGMgKiB2YWx1ZTsKfQoKdmVjMiBjdWJpYyhjb25zdCBpbiB2ZWMyIHZhbHVlLCBpbiBmbG9hdCBzbG9wZTAsIGluIGZsb2F0IHNsb3BlMSkgewogICAgZmxvYXQgYSA9IHNsb3BlMCArIHNsb3BlMSAtIDIuOwogICAgZmxvYXQgYiA9IC0yLiAqIHNsb3BlMCAtIHNsb3BlMSArIDMuOwogICAgZmxvYXQgYyA9IHNsb3BlMDsKICAgIHZlYzIgdmFsdWUyID0gdmFsdWUgKiB2YWx1ZTsKICAgIHZlYzIgdmFsdWUzID0gdmFsdWUgKiB2YWx1ZTI7CiAgICByZXR1cm4gYSAqIHZhbHVlMyArIGIgKiB2YWx1ZTIgKyBjICogdmFsdWU7Cn0KCnZlYzMgY3ViaWMoY29uc3QgaW4gdmVjMyB2YWx1ZSwgaW4gZmxvYXQgc2xvcGUwLCBpbiBmbG9hdCBzbG9wZTEpIHsKICAgIGZsb2F0IGEgPSBzbG9wZTAgKyBzbG9wZTEgLSAyLjsKICAgIGZsb2F0IGIgPSAtMi4gKiBzbG9wZTAgLSBzbG9wZTEgKyAzLjsKICAgIGZsb2F0IGMgPSBzbG9wZTA7CiAgICB2ZWMzIHZhbHVlMiA9IHZhbHVlICogdmFsdWU7CiAgICB2ZWMzIHZhbHVlMyA9IHZhbHVlICogdmFsdWUyOwogICAgcmV0dXJuIGEgKiB2YWx1ZTMgKyBiICogdmFsdWUyICsgYyAqIHZhbHVlOwp9Cgp2ZWM0IGN1YmljKGNvbnN0IGluIHZlYzQgdmFsdWUsIGluIGZsb2F0IHNsb3BlMCwgaW4gZmxvYXQgc2xvcGUxKSB7CiAgICBmbG9hdCBhID0gc2xvcGUwICsgc2xvcGUxIC0gMi47CiAgICBmbG9hdCBiID0gLTIuICogc2xvcGUwIC0gc2xvcGUxICsgMy47CiAgICBmbG9hdCBjID0gc2xvcGUwOwogICAgdmVjNCB2YWx1ZTIgPSB2YWx1ZSAqIHZhbHVlOwogICAgdmVjNCB2YWx1ZTMgPSB2YWx1ZSAqIHZhbHVlMjsKICAgIHJldHVybiBhICogdmFsdWUzICsgYiAqIHZhbHVlMiArIGMgKiB2YWx1ZTsKfQojZW5kaWYKCgojaWZuZGVmIEZOQ19RVUlOVElDCiNkZWZpbmUgRk5DX1FVSU5USUMgCgpmbG9hdCBxdWludGljKGNvbnN0IGluIGZsb2F0IHYpIHsgcmV0dXJuIHYqdip2Kih2Kih2KjYuMC0xNS4wKSsxMC4wKTsgfQp2ZWMyICBxdWludGljKGNvbnN0IGluIHZlYzIgdikgIHsgcmV0dXJuIHYqdip2Kih2Kih2KjYuMC0xNS4wKSsxMC4wKTsgfQp2ZWMzICBxdWludGljKGNvbnN0IGluIHZlYzMgdikgIHsgcmV0dXJuIHYqdip2Kih2Kih2KjYuMC0xNS4wKSsxMC4wKTsgfQp2ZWM0ICBxdWludGljKGNvbnN0IGluIHZlYzQgdikgIHsgcmV0dXJuIHYqdip2Kih2Kih2KjYuMC0xNS4wKSsxMC4wKTsgfQoKI2VuZGlmCgoKCiNpZm5kZWYgRk5DX0dOT0lTRQojZGVmaW5lIEZOQ19HTk9JU0UKCmZsb2F0IGdub2lzZShmbG9hdCB4KSB7CiAgICBmbG9hdCBpID0gZmxvb3IoeCk7ICAKICAgIGZsb2F0IGYgPSBmcmFjdCh4KTsgIAogICAgcmV0dXJuIG1peChyYW5kb20oaSksIHJhbmRvbShpICsgMS4wKSwgc21vb3Roc3RlcCgwLiwxLixmKSk7IAp9CgpmbG9hdCBnbm9pc2UodmVjMiBzdCkgewogICAgdmVjMiBpID0gZmxvb3Ioc3QpOwogICAgdmVjMiBmID0gZnJhY3Qoc3QpOwogICAgZmxvYXQgYSA9IHJhbmRvbShpKTsKICAgIGZsb2F0IGIgPSByYW5kb20oaSArIHZlYzIoMS4wLCAwLjApKTsKICAgIGZsb2F0IGMgPSByYW5kb20oaSArIHZlYzIoMC4wLCAxLjApKTsKICAgIGZsb2F0IGQgPSByYW5kb20oaSArIHZlYzIoMS4wLCAxLjApKTsKICAgIHZlYzIgdSA9IGN1YmljKGYpOwogICAgcmV0dXJuIG1peCggYSwgYiwgdS54KSArCiAgICAgICAgICAgICAgICAoYyAtIGEpKiB1LnkgKiAoMS4wIC0gdS54KSArCiAgICAgICAgICAgICAgICAoZCAtIGIpICogdS54ICogdS55Owp9CgpmbG9hdCBnbm9pc2UodmVjMyBwKSB7CiAgICB2ZWMzIGkgPSBmbG9vcihwKTsKICAgIHZlYzMgZiA9IGZyYWN0KHApOwogICAgdmVjMyB1ID0gcXVpbnRpYyhmKTsKICAgIHJldHVybiAtMS4wICsgMi4wICogbWl4KCBtaXgoIG1peCggcmFuZG9tKGkgKyB2ZWMzKDAuMCwwLjAsMC4wKSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZG9tKGkgKyB2ZWMzKDEuMCwwLjAsMC4wKSksIHUueCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWl4KCByYW5kb20oaSArIHZlYzMoMC4wLDEuMCwwLjApKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5kb20oaSArIHZlYzMoMS4wLDEuMCwwLjApKSwgdS54KSwgdS55KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1peCggbWl4KCByYW5kb20oaSArIHZlYzMoMC4wLDAuMCwxLjApKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5kb20oaSArIHZlYzMoMS4wLDAuMCwxLjApKSwgdS54KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXgoIHJhbmRvbShpICsgdmVjMygwLjAsMS4wLDEuMCkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmRvbShpICsgdmVjMygxLjAsMS4wLDEuMCkpLCB1LngpLCB1LnkpLCB1LnogKTsKfQoKZmxvYXQgZ25vaXNlKHZlYzMgcCwgZmxvYXQgdGlsZUxlbmd0aCkgewogICAgdmVjMyBpID0gZmxvb3IocCk7CiAgICB2ZWMzIGYgPSBmcmFjdChwKTsKICAgICAgICAgICAgCiAgICB2ZWMzIHUgPSBxdWludGljKGYpOwogICAgICAgIAogICAgcmV0dXJuIG1peCggbWl4KCBtaXgoIGRvdCggc3JhbmRvbTMoaSArIHZlYzMoMC4wLDAuMCwwLjApLCB0aWxlTGVuZ3RoKSwgZiAtIHZlYzMoMC4wLDAuMCwwLjApKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3QoIHNyYW5kb20zKGkgKyB2ZWMzKDEuMCwwLjAsMC4wKSwgdGlsZUxlbmd0aCksIGYgLSB2ZWMzKDEuMCwwLjAsMC4wKSksIHUueCksCiAgICAgICAgICAgICAgICAgICAgbWl4KCBkb3QoIHNyYW5kb20zKGkgKyB2ZWMzKDAuMCwxLjAsMC4wKSwgdGlsZUxlbmd0aCksIGYgLSB2ZWMzKDAuMCwxLjAsMC4wKSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG90KCBzcmFuZG9tMyhpICsgdmVjMygxLjAsMS4wLDAuMCksIHRpbGVMZW5ndGgpLCBmIC0gdmVjMygxLjAsMS4wLDAuMCkpLCB1LngpLCB1LnkpLAogICAgICAgICAgICAgICAgbWl4KCBtaXgoIGRvdCggc3JhbmRvbTMoaSArIHZlYzMoMC4wLDAuMCwxLjApLCB0aWxlTGVuZ3RoKSwgZiAtIHZlYzMoMC4wLDAuMCwxLjApKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3QoIHNyYW5kb20zKGkgKyB2ZWMzKDEuMCwwLjAsMS4wKSwgdGlsZUxlbmd0aCksIGYgLSB2ZWMzKDEuMCwwLjAsMS4wKSksIHUueCksCiAgICAgICAgICAgICAgICAgICAgbWl4KCBkb3QoIHNyYW5kb20zKGkgKyB2ZWMzKDAuMCwxLjAsMS4wKSwgdGlsZUxlbmd0aCksIGYgLSB2ZWMzKDAuMCwxLjAsMS4wKSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZG90KCBzcmFuZG9tMyhpICsgdmVjMygxLjAsMS4wLDEuMCksIHRpbGVMZW5ndGgpLCBmIC0gdmVjMygxLjAsMS4wLDEuMCkpLCB1LngpLCB1LnkpLCB1LnogKTsKfQoKdmVjMyBnbm9pc2UzKHZlYzMgeCkgewogICAgcmV0dXJuIHZlYzMoZ25vaXNlKHgrdmVjMygxMjMuNDU2LCAwLjU2NywgMC4zNykpLAogICAgICAgICAgICAgICAgZ25vaXNlKHgrdmVjMygwLjExLCA0Ny40MywgMTkuMTcpKSwKICAgICAgICAgICAgICAgIGdub2lzZSh4KSApOwp9CgojZW5kaWYKCgoKCgojaWZuZGVmIEZOQ19NT0QyODkKI2RlZmluZSBGTkNfTU9EMjg5CgpmbG9hdCBtb2QyODkoY29uc3QgaW4gZmxvYXQgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CnZlYzIgbW9kMjg5KGNvbnN0IGluIHZlYzIgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CnZlYzMgbW9kMjg5KGNvbnN0IGluIHZlYzMgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CnZlYzQgbW9kMjg5KGNvbnN0IGluIHZlYzQgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CgojZW5kaWYKCgoKCgojaWZuZGVmIEZOQ19QRVJNVVRFCiNkZWZpbmUgRk5DX1BFUk1VVEUKCmZsb2F0IHBlcm11dGUoY29uc3QgaW4gZmxvYXQgeCkgeyByZXR1cm4gbW9kMjg5KCgoeCAqIDM0LjApICsgMS4wKSAqIHgpOyB9CnZlYzIgcGVybXV0ZShjb25zdCBpbiB2ZWMyIHgpIHsgcmV0dXJuIG1vZDI4OSgoKHggKiAzNC4wKSArIDEuMCkgKiB4KTsgfQp2ZWMzIHBlcm11dGUoY29uc3QgaW4gdmVjMyB4KSB7IHJldHVybiBtb2QyODkoKCh4ICogMzQuMCkgKyAxLjApICogeCk7IH0KdmVjNCBwZXJtdXRlKGNvbnN0IGluIHZlYzQgeCkgeyByZXR1cm4gbW9kMjg5KCgoeCAqIDM0LjApICsgMS4wKSAqIHgpOyB9CgojZW5kaWYKCgoKI2lmbmRlZiBGTkNfVEFZTE9SSU5WU1FSVAojZGVmaW5lIEZOQ19UQVlMT1JJTlZTUVJUCmZsb2F0IHRheWxvckludlNxcnQoaW4gZmxvYXQgcikgeyByZXR1cm4gMS43OTI4NDI5MTQwMDE1OSAtIDAuODUzNzM0NzIwOTUzMTQgKiByOyB9CnZlYzIgdGF5bG9ySW52U3FydChpbiB2ZWMyIHIpIHsgcmV0dXJuIDEuNzkyODQyOTE0MDAxNTkgLSAwLjg1MzczNDcyMDk1MzE0ICogcjsgfQp2ZWMzIHRheWxvckludlNxcnQoaW4gdmVjMyByKSB7IHJldHVybiAxLjc5Mjg0MjkxNDAwMTU5IC0gMC44NTM3MzQ3MjA5NTMxNCAqIHI7IH0KdmVjNCB0YXlsb3JJbnZTcXJ0KGluIHZlYzQgcikgeyByZXR1cm4gMS43OTI4NDI5MTQwMDE1OSAtIDAuODUzNzM0NzIwOTUzMTQgKiByOyB9CiNlbmRpZgoKCiNpZm5kZWYgRk5DX0dSQUQ0CiNkZWZpbmUgRk5DX0dSQUQ0CnZlYzQgZ3JhZDQoZmxvYXQgaiwgdmVjNCBpcCkgewogICAgY29uc3QgdmVjNCBvbmVzID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAtMS4wKTsKICAgIHZlYzQgcCxzOwoKICAgIHAueHl6ID0gZmxvb3IoIGZyYWN0ICh2ZWMzKGopICogaXAueHl6KSAqIDcuMCkgKiBpcC56IC0gMS4wOwogICAgcC53ID0gMS41IC0gZG90KGFicyhwLnh5eiksIG9uZXMueHl6KTsKICAgIHMgPSB2ZWM0KGxlc3NUaGFuKHAsIHZlYzQoMC4wKSkpOwogICAgcC54eXogPSBwLnh5eiArIChzLnh5eioyLjAgLSAxLjApICogcy53d3c7CgogICAgcmV0dXJuIHA7Cn0KI2VuZGlmCgoKCgojaWZuZGVmIEZOQ19QU1JGTk9JU0UKI2RlZmluZSBGTkNfUFNSRk5PSVNFCgpmbG9hdCBwc3Jkbm9pc2UodmVjMiB4LCB2ZWMyIHBlcmlvZCwgZmxvYXQgYWxwaGEsIG91dCB2ZWMyIGdyYWRpZW50KSB7CgoJCgl2ZWMyIHV2ID0gdmVjMih4LnggKyB4LnkqMC41LCB4LnkpOwoKCQoJdmVjMiBpMCA9IGZsb29yKHV2KTsKCXZlYzIgZjAgPSBmcmFjdCh1dik7CgkKCWZsb2F0IGNtcCA9IHN0ZXAoZjAueSwgZjAueCk7Cgl2ZWMyIG8xID0gdmVjMihjbXAsIDEuMC1jbXApOwoKCQoJdmVjMiBpMSA9IGkwICsgbzE7Cgl2ZWMyIGkyID0gaTAgKyB2ZWMyKDEuMCwgMS4wKTsKCgkKCXZlYzIgdjAgPSB2ZWMyKGkwLnggLSBpMC55ICogMC41LCBpMC55KTsKCXZlYzIgdjEgPSB2ZWMyKHYwLnggKyBvMS54IC0gbzEueSAqIDAuNSwgdjAueSArIG8xLnkpOwoJdmVjMiB2MiA9IHZlYzIodjAueCArIDAuNSwgdjAueSArIDEuMCk7CgoJCgl2ZWMyIHgwID0geCAtIHYwOwoJdmVjMiB4MSA9IHggLSB2MTsKCXZlYzIgeDIgPSB4IC0gdjI7CgoJdmVjMyBpdSA9IHZlYzMoMC4wKTsKICAgIHZlYzMgaXYgPSB2ZWMzKDAuMCk7Cgl2ZWMzIHh3ID0gdmVjMygwLjApOwogICAgdmVjMyB5dyA9IHZlYzMoMC4wKTsKCgkKCWlmKGFueShncmVhdGVyVGhhbihwZXJpb2QsIHZlYzIoMC4wKSkpKSB7CgkJeHcgPSB2ZWMzKHYwLngsIHYxLngsIHYyLngpOwoJCXl3ID0gdmVjMyh2MC55LCB2MS55LCB2Mi55KTsKCQlpZihwZXJpb2QueCA+IDAuMCkKCQkJeHcgPSBtb2QodmVjMyh2MC54LCB2MS54LCB2Mi54KSwgcGVyaW9kLngpOwoJCWlmKHBlcmlvZC55ID4gMC4wKQoJCQl5dyA9IG1vZCh2ZWMzKHYwLnksIHYxLnksIHYyLnkpLCBwZXJpb2QueSk7CgkJCgkJaXUgPSBmbG9vcih4dyArIDAuNSp5dyArIDAuNSk7CgkJaXYgPSBmbG9vcih5dyArIDAuNSk7Cgl9IGVsc2UgeyAKCQlpdSA9IHZlYzMoaTAueCwgaTEueCwgaTIueCk7CgkJaXYgPSB2ZWMzKGkwLnksIGkxLnksIGkyLnkpOwoJfQoKCQoJdmVjMyBoYXNoID0gbW9kKGl1LCAyODkuMCk7CgloYXNoID0gbW9kKChoYXNoKjUxLjAgKyAyLjApKmhhc2ggKyBpdiwgMjg5LjApOwoJaGFzaCA9IG1vZCgoaGFzaCozNC4wICsgMTAuMCkqaGFzaCwgMjg5LjApOwoKCQoJdmVjMyBwc2kgPSBoYXNoICogMC4wNzQ4MiArIGFscGhhOwoJdmVjMyBneCA9IGNvcyhwc2kpOwoJdmVjMyBneSA9IHNpbihwc2kpOwoKCQoJdmVjMiBnMCA9IHZlYzIoZ3gueCxneS54KTsKCXZlYzIgZzEgPSB2ZWMyKGd4LnksZ3kueSk7Cgl2ZWMyIGcyID0gdmVjMihneC56LGd5LnopOwoKCQoJdmVjMyB3ID0gMC44IC0gdmVjMyhkb3QoeDAsIHgwKSwgZG90KHgxLCB4MSksIGRvdCh4MiwgeDIpKTsKCXcgPSBtYXgodywgMC4wKTsKCXZlYzMgdzIgPSB3ICogdzsKCXZlYzMgdzQgPSB3MiAqIHcyOwoKCQoJdmVjMyBnZG90eCA9IHZlYzMoZG90KGcwLCB4MCksIGRvdChnMSwgeDEpLCBkb3QoZzIsIHgyKSk7CgoJCglmbG9hdCBuID0gZG90KHc0LCBnZG90eCk7CgoJCgl2ZWMzIHczID0gdzIgKiB3OwoJdmVjMyBkdyA9IC04LjAgKiB3MyAqIGdkb3R4OwoJdmVjMiBkbjAgPSB3NC54ICogZzAgKyBkdy54ICogeDA7Cgl2ZWMyIGRuMSA9IHc0LnkgKiBnMSArIGR3LnkgKiB4MTsKCXZlYzIgZG4yID0gdzQueiAqIGcyICsgZHcueiAqIHgyOwoJZ3JhZGllbnQgPSAxMC45ICogKGRuMCArIGRuMSArIGRuMik7CgoJCglyZXR1cm4gMTAuOSAqIG47Cn0KCmZsb2F0IHBzcmRub2lzZSh2ZWMyIHgsIHZlYzIgcGVyaW9kLCBmbG9hdCBhbHBoYSwgb3V0IHZlYzIgZ3JhZGllbnQsIG91dCB2ZWMzIGRnKSB7CgoJCgl2ZWMyIHV2ID0gdmVjMih4LnggKyB4LnkqMC41LCB4LnkpOwoKCQoJdmVjMiBpMCA9IGZsb29yKHV2KTsKCXZlYzIgZjAgPSBmcmFjdCh1dik7CgkKCWZsb2F0IGNtcCA9IHN0ZXAoZjAueSwgZjAueCk7Cgl2ZWMyIG8xID0gdmVjMihjbXAsIDEuMC1jbXApOwoKCQoJdmVjMiBpMSA9IGkwICsgbzE7Cgl2ZWMyIGkyID0gaTAgKyB2ZWMyKDEuMCwgMS4wKTsKCgkKCXZlYzIgdjAgPSB2ZWMyKGkwLnggLSBpMC55ICogMC41LCBpMC55KTsKCXZlYzIgdjEgPSB2ZWMyKHYwLnggKyBvMS54IC0gbzEueSAqIDAuNSwgdjAueSArIG8xLnkpOwoJdmVjMiB2MiA9IHZlYzIodjAueCArIDAuNSwgdjAueSArIDEuMCk7CgoJCgl2ZWMyIHgwID0geCAtIHYwOwoJdmVjMiB4MSA9IHggLSB2MTsKCXZlYzIgeDIgPSB4IC0gdjI7CgoJdmVjMyBpdSwgaXY7Cgl2ZWMzIHh3LCB5dzsKCgkKCWlmKGFueShncmVhdGVyVGhhbihwZXJpb2QsIHZlYzIoMC4wKSkpKSB7CgkJeHcgPSB2ZWMzKHYwLngsIHYxLngsIHYyLngpOwoJCXl3ID0gdmVjMyh2MC55LCB2MS55LCB2Mi55KTsKCQlpZihwZXJpb2QueCA+IDAuMCkKCQkJeHcgPSBtb2QodmVjMyh2MC54LCB2MS54LCB2Mi54KSwgcGVyaW9kLngpOwoJCWlmKHBlcmlvZC55ID4gMC4wKQoJCQl5dyA9IG1vZCh2ZWMzKHYwLnksIHYxLnksIHYyLnkpLCBwZXJpb2QueSk7CgkJCgkJaXUgPSBmbG9vcih4dyArIDAuNSp5dyArIDAuNSk7CgkJaXYgPSBmbG9vcih5dyArIDAuNSk7Cgl9IGVsc2UgeyAKCQlpdSA9IHZlYzMoaTAueCwgaTEueCwgaTIueCk7CgkJaXYgPSB2ZWMzKGkwLnksIGkxLnksIGkyLnkpOwoJfQoKCQoJdmVjMyBoYXNoID0gbW9kKGl1LCAyODkuMCk7CgloYXNoID0gbW9kKChoYXNoKjUxLjAgKyAyLjApKmhhc2ggKyBpdiwgMjg5LjApOwoJaGFzaCA9IG1vZCgoaGFzaCozNC4wICsgMTAuMCkqaGFzaCwgMjg5LjApOwoKCQoJdmVjMyBwc2kgPSBoYXNoICogMC4wNzQ4MiArIGFscGhhOwoJdmVjMyBneCA9IGNvcyhwc2kpOwoJdmVjMyBneSA9IHNpbihwc2kpOwoKCQoJdmVjMiBnMCA9IHZlYzIoZ3gueCxneS54KTsKCXZlYzIgZzEgPSB2ZWMyKGd4LnksZ3kueSk7Cgl2ZWMyIGcyID0gdmVjMihneC56LGd5LnopOwoKCQoJdmVjMyB3ID0gMC44IC0gdmVjMyhkb3QoeDAsIHgwKSwgZG90KHgxLCB4MSksIGRvdCh4MiwgeDIpKTsKCXcgPSBtYXgodywgMC4wKTsKCXZlYzMgdzIgPSB3ICogdzsKCXZlYzMgdzQgPSB3MiAqIHcyOwoKCQoJdmVjMyBnZG90eCA9IHZlYzMoZG90KGcwLCB4MCksIGRvdChnMSwgeDEpLCBkb3QoZzIsIHgyKSk7CgoJCglmbG9hdCBuID0gZG90KHc0LCBnZG90eCk7CgoJCgl2ZWMzIHczID0gdzIgKiB3OwoJdmVjMyBkdyA9IC04LjAgKiB3MyAqIGdkb3R4OwoJdmVjMiBkbjAgPSB3NC54ICogZzAgKyBkdy54ICogeDA7Cgl2ZWMyIGRuMSA9IHc0LnkgKiBnMSArIGR3LnkgKiB4MTsKCXZlYzIgZG4yID0gdzQueiAqIGcyICsgZHcueiAqIHgyOwoJZ3JhZGllbnQgPSAxMC45ICogKGRuMCArIGRuMSArIGRuMik7CgoJCgl2ZWMzIGRnMCwgZGcxLCBkZzI7Cgl2ZWMzIGR3MiA9IDQ4LjAgKiB3MiAqIGdkb3R4OwoJCglkZzAueHkgPSBkdzIueCAqIHgwICogeDAgLSA4LjAgKiB3My54ICogKDIuMCAqIGcwICogeDAgKyBnZG90eC54KTsKCWRnMS54eSA9IGR3Mi55ICogeDEgKiB4MSAtIDguMCAqIHczLnkgKiAoMi4wICogZzEgKiB4MSArIGdkb3R4LnkpOwoJZGcyLnh5ID0gZHcyLnogKiB4MiAqIHgyIC0gOC4wICogdzMueiAqICgyLjAgKiBnMiAqIHgyICsgZ2RvdHgueik7CgkKCWRnMC56ID0gZHcyLnggKiB4MC54ICogeDAueSAtIDguMCAqIHczLnggKiBkb3QoZzAsIHgwLnl4KTsKCWRnMS56ID0gZHcyLnkgKiB4MS54ICogeDEueSAtIDguMCAqIHczLnkgKiBkb3QoZzEsIHgxLnl4KTsKCWRnMi56ID0gZHcyLnogKiB4Mi54ICogeDIueSAtIDguMCAqIHczLnogKiBkb3QoZzIsIHgyLnl4KTsKCWRnID0gMTAuOSAqIChkZzAgKyBkZzEgKyBkZzIpOwoKCQoJcmV0dXJuIDEwLjkgKiBuOwp9CgpmbG9hdCBwc3Jkbm9pc2UodmVjMiB4LCB2ZWMyIHBlcmlvZCwgZmxvYXQgYWxwaGEpIHsKICAgIHZlYzIgZyA9IHZlYzIoMC4wKTsKICAgIHJldHVybiBwc3Jkbm9pc2UoeCwgcGVyaW9kLCBhbHBoYSwgZyk7Cn0KCmZsb2F0IHBzcmRub2lzZSh2ZWMyIHgsIHZlYzIgcGVyaW9kKSB7CiAgICByZXR1cm4gcHNyZG5vaXNlKHgsIHBlcmlvZCwgMC4wKTsKfQoKZmxvYXQgcHNyZG5vaXNlKHZlYzIgeCkgewogICAgcmV0dXJuIHBzcmRub2lzZSh4LCB2ZWMyKDAuMCkpOwp9CgpmbG9hdCBwc3Jkbm9pc2UodmVjMyB4LCB2ZWMzIHBlcmlvZCwgZmxvYXQgYWxwaGEsIG91dCB2ZWMzIGdyYWRpZW50KSB7CgojaWZuZGVmIFBTUkROT0lTRV9QRVJMSU5fR1JJRAogICAgCiAgICBjb25zdCBtYXQzIE0gPSBtYXQzKDAuMCwgMS4wLCAxLjAsCiAgICAgICAgICAgICAgICAgICAgICAgIDEuMCwgMC4wLCAxLjAsCiAgICAgICAgICAgICAgICAgICAgICAgIDEuMCwgMS4wLCAwLjApOwoKICAgIGNvbnN0IG1hdDMgTWkgPSBtYXQzKC0wLjUsIDAuNSwgMC41LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMC41LC0wLjUsIDAuNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNSwgMC41LC0wLjUpOwojZW5kaWYKCiAgICB2ZWMzIHV2dyA9IHZlYzMoMC4wKTsKCiAgICAKI2lmbmRlZiBQU1JETk9JU0VfUEVSTElOX0dSSUQKICAgIAogICAgdXZ3ID0gTSAqIHg7CiAjZWxzZQogICAgCiAgICAKICAgIHV2dyA9IHggKyBkb3QoeCwgdmVjMygwLjMzMzMzMzMzKSk7CiAjZW5kaWYKCiAgICAKICAgIHZlYzMgaTAgPSBmbG9vcih1dncpOwogICAgdmVjMyBmMCA9IGZyYWN0KHV2dyk7IAoKICAgIAogICAgCiAgICAKICAgIAogICAgdmVjMyBnXyA9IHN0ZXAoZjAueHl4LCBmMC55enopOyAKICAgIHZlYzMgbF8gPSAxLjAgLSBnXzsgICAgICAgICAgICAgCiAgICB2ZWMzIGcgPSB2ZWMzKGxfLnosIGdfLnh5KTsKICAgIHZlYzMgbCA9IHZlYzMobF8ueHksIGdfLnopOwogICAgdmVjMyBvMSA9IG1pbiggZywgbCApOwogICAgdmVjMyBvMiA9IG1heCggZywgbCApOwoKICAgIAogICAgdmVjMyBpMSA9IGkwICsgbzE7CiAgICB2ZWMzIGkyID0gaTAgKyBvMjsKICAgIHZlYzMgaTMgPSBpMCArIHZlYzMoMS4wKTsKCiAgICB2ZWMzIHYwID0gdmVjMygwLjApOwogICAgdmVjMyB2MSA9IHZlYzMoMC4wKTsKICAgIHZlYzMgdjIgPSB2ZWMzKDAuMCk7CiAgICB2ZWMzIHYzID0gdmVjMygwLjApOwoKICAgIAojaWZuZGVmIFBTUkROT0lTRV9QRVJMSU5fR1JJRAogICAgdjAgPSBNaSAqIGkwOwogICAgdjEgPSBNaSAqIGkxOwogICAgdjIgPSBNaSAqIGkyOwogICAgdjMgPSBNaSAqIGkzOwojZWxzZQogICAgCiAgICB2MCA9IGkwIC0gZG90KGkwLCB2ZWMzKDEuMC82LjApKTsKICAgIHYxID0gaTEgLSBkb3QoaTEsIHZlYzMoMS4wLzYuMCkpOwogICAgdjIgPSBpMiAtIGRvdChpMiwgdmVjMygxLjAvNi4wKSk7CiAgICB2MyA9IGkzIC0gZG90KGkzLCB2ZWMzKDEuMC82LjApKTsKI2VuZGlmCgogICAgCiAgICB2ZWMzIHgwID0geCAtIHYwOwogICAgdmVjMyB4MSA9IHggLSB2MTsKICAgIHZlYzMgeDIgPSB4IC0gdjI7CiAgICB2ZWMzIHgzID0geCAtIHYzOwoKICAgIGlmKGFueShncmVhdGVyVGhhbihwZXJpb2QsIHZlYzMoMC4wKSkpKSB7CiAgICAgICAgCiAgICAgICAgdmVjNCB2eCA9IHZlYzQodjAueCwgdjEueCwgdjIueCwgdjMueCk7CiAgICAgICAgdmVjNCB2eSA9IHZlYzQodjAueSwgdjEueSwgdjIueSwgdjMueSk7CiAgICAgICAgdmVjNCB2eiA9IHZlYzQodjAueiwgdjEueiwgdjIueiwgdjMueik7CiAgICAgICAgCiAgICAgICAgaWYocGVyaW9kLnggPiAwLjApIHZ4ID0gbW9kKHZ4LCBwZXJpb2QueCk7CiAgICAgICAgaWYocGVyaW9kLnkgPiAwLjApIHZ5ID0gbW9kKHZ5LCBwZXJpb2QueSk7CiAgICAgICAgaWYocGVyaW9kLnogPiAwLjApIHZ6ID0gbW9kKHZ6LCBwZXJpb2Queik7CiAgICAgICAgCiNpZm5kZWYgUFNSRE5PSVNFX1BFUkxJTl9HUklECiAgICAgICAgaTAgPSBNICogdmVjMyh2eC54LCB2eS54LCB2ei54KTsKICAgICAgICBpMSA9IE0gKiB2ZWMzKHZ4LnksIHZ5LnksIHZ6LnkpOwogICAgICAgIGkyID0gTSAqIHZlYzModngueiwgdnkueiwgdnoueik7CiAgICAgICAgaTMgPSBNICogdmVjMyh2eC53LCB2eS53LCB2ei53KTsKI2Vsc2UKICAgICAgICB2MCA9IHZlYzModngueCwgdnkueCwgdnoueCk7CiAgICAgICAgdjEgPSB2ZWMzKHZ4LnksIHZ5LnksIHZ6LnkpOwogICAgICAgIHYyID0gdmVjMyh2eC56LCB2eS56LCB2ei56KTsKICAgICAgICB2MyA9IHZlYzModngudywgdnkudywgdnoudyk7CiAgICAgICAgCiAgICAgICAgaTAgPSB2MCArIGRvdCh2MCwgdmVjMygxLjAvMy4wKSk7CiAgICAgICAgaTEgPSB2MSArIGRvdCh2MSwgdmVjMygxLjAvMy4wKSk7CiAgICAgICAgaTIgPSB2MiArIGRvdCh2MiwgdmVjMygxLjAvMy4wKSk7CiAgICAgICAgaTMgPSB2MyArIGRvdCh2MywgdmVjMygxLjAvMy4wKSk7CiNlbmRpZgogICAgICAgIAogICAgICAgIGkwID0gZmxvb3IoaTAgKyAwLjUpOwogICAgICAgIGkxID0gZmxvb3IoaTEgKyAwLjUpOwogICAgICAgIGkyID0gZmxvb3IoaTIgKyAwLjUpOwogICAgICAgIGkzID0gZmxvb3IoaTMgKyAwLjUpOwogICAgfQoKICAgIAogICAgdmVjNCBoYXNoID0gcGVybXV0ZSggcGVybXV0ZSggcGVybXV0ZSggCiAgICAgICAgICAgICAgICB2ZWM0KGkwLnosIGkxLnosIGkyLnosIGkzLnogKSkKICAgICAgICAgICAgICAgICsgdmVjNChpMC55LCBpMS55LCBpMi55LCBpMy55ICkpCiAgICAgICAgICAgICAgICArIHZlYzQoaTAueCwgaTEueCwgaTIueCwgaTMueCApKTsKCiAgICAKICAgIHZlYzQgdGhldGEgPSBoYXNoICogMy44ODMyMjIwNzc7ICAKICAgIHZlYzQgc3ogICAgPSBoYXNoICogLTAuMDA2OTIwNDE1ICsgMC45OTY1Mzk3OTI7IAogICAgdmVjNCBwc2kgICA9IGhhc2ggKiAwLjEwODcwNTYyOCA7IAoKICAgIHZlYzQgQ3QgPSBjb3ModGhldGEpOwogICAgdmVjNCBTdCA9IHNpbih0aGV0YSk7CiAgICB2ZWM0IHN6X3ByaW1lID0gc3FydCggMS4wIC0gc3oqc3ogKTsgCgogICAgdmVjNCBneCA9IHZlYzQoMC4wKTsKICAgIHZlYzQgZ3kgPSB2ZWM0KDAuMCk7CiAgICB2ZWM0IGd6ID0gdmVjNCgwLjApOwoKICAgIAojaWZkZWYgUFNSRE5PSVNFX0ZBU1RfUk9UQVRJT04KICAgIAogICAgdmVjNCBxeCA9IFN0OyAgICAgICAgIAogICAgdmVjNCBxeSA9IC1DdDsgCiAgICB2ZWM0IHF6ID0gdmVjNCgwLjApOwoKICAgIHZlYzQgcHggPSAgc3ogKiBxeTsgICAKICAgIHZlYzQgcHkgPSAtc3ogKiBxeDsKICAgIHZlYzQgcHogPSBzel9wcmltZTsKCiAgICBwc2kgKz0gYWxwaGE7ICAgICAgICAgCiAgICB2ZWM0IFNhID0gc2luKHBzaSk7CiAgICB2ZWM0IENhID0gY29zKHBzaSk7CgogICAgZ3ggPSBDYSAqIHB4ICsgU2EgKiBxeDsKICAgIGd5ID0gQ2EgKiBweSArIFNhICogcXk7CiAgICBneiA9IENhICogcHogKyBTYSAqIHF6OwojZWxzZQogICAgCiAgICAKICAgIGlmKGFscGhhICE9IDAuMCkgewogICAgICAgIHZlYzQgU3AgPSBzaW4ocHNpKTsgICAgICAgICAgCiAgICAgICAgdmVjNCBDcCA9IGNvcyhwc2kpOwoKICAgICAgICB2ZWM0IHB4ID0gQ3QgKiBzel9wcmltZTsgICAgIAogICAgICAgIHZlYzQgcHkgPSBTdCAqIHN6X3ByaW1lOyAgICAgCiAgICAgICAgdmVjNCBweiA9IHN6OwoKICAgICAgICB2ZWM0IEN0cCA9IFN0KlNwIC0gQ3QqQ3A7ICAgIAogICAgICAgIHZlYzQgcXggPSBtaXgoIEN0cCpTdCwgU3AsIHN6KTsKICAgICAgICB2ZWM0IHF5ID0gbWl4KC1DdHAqQ3QsIENwLCBzeik7CiAgICAgICAgdmVjNCBxeiA9IC0ocHkqQ3AgKyBweCpTcCk7CgogICAgICAgIHZlYzQgU2EgPSB2ZWM0KHNpbihhbHBoYSkpOyAgICAgICAKICAgICAgICB2ZWM0IENhID0gdmVjNChjb3MoYWxwaGEpKTsKCiAgICAgICAgZ3ggPSBDYSAqIHB4ICsgU2EgKiBxeDsKICAgICAgICBneSA9IENhICogcHkgKyBTYSAqIHF5OwogICAgICAgIGd6ID0gQ2EgKiBweiArIFNhICogcXo7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBneCA9IEN0ICogc3pfcHJpbWU7ICAKICAgICAgICBneSA9IFN0ICogc3pfcHJpbWU7CiAgICAgICAgZ3ogPSBzejsgIAogICAgfQojZW5kaWYKCiAgICAKICAgIHZlYzMgZzAgPSB2ZWMzKGd4LngsIGd5LngsIGd6LngpOwogICAgdmVjMyBnMSA9IHZlYzMoZ3gueSwgZ3kueSwgZ3oueSk7CiAgICB2ZWMzIGcyID0gdmVjMyhneC56LCBneS56LCBnei56KTsKICAgIHZlYzMgZzMgPSB2ZWMzKGd4LncsIGd5LncsIGd6LncpOwoKICAgIAogICAgdmVjNCB3ID0gMC41IC0gdmVjNChkb3QoeDAseDApLCBkb3QoeDEseDEpLCBkb3QoeDIseDIpLCBkb3QoeDMseDMpKTsKICAgIHcgPSBtYXgodywgMC4wKTsKICAgIHZlYzQgdzIgPSB3ICogdzsKICAgIHZlYzQgdzMgPSB3MiAqIHc7CgogICAgCiAgICB2ZWM0IGdkb3R4ID0gdmVjNChkb3QoZzAseDApLCBkb3QoZzEseDEpLCBkb3QoZzIseDIpLCBkb3QoZzMseDMpKTsKCiAgICAKICAgIGZsb2F0IG4gPSBkb3QodzMsIGdkb3R4KTsKCiAgICAKICAgIHZlYzQgZHcgPSAtNi4wICogdzIgKiBnZG90eDsKICAgIHZlYzMgZG4wID0gdzMueCAqIGcwICsgZHcueCAqIHgwOwogICAgdmVjMyBkbjEgPSB3My55ICogZzEgKyBkdy55ICogeDE7CiAgICB2ZWMzIGRuMiA9IHczLnogKiBnMiArIGR3LnogKiB4MjsKICAgIHZlYzMgZG4zID0gdzMudyAqIGczICsgZHcudyAqIHgzOwogICAgZ3JhZGllbnQgPSAzOS41ICogKGRuMCArIGRuMSArIGRuMiArIGRuMyk7CgogICAgCiAgICByZXR1cm4gMzkuNSAqIG47CiAgCn0KCmZsb2F0IHBzcmRub2lzZSh2ZWMzIHgsIHZlYzMgcGVyaW9kLCBmbG9hdCBhbHBoYSwgb3V0IHZlYzMgZ3JhZGllbnQsIG91dCB2ZWMzIGRnLCBvdXQgdmVjMyBkZzIpIHsKCiNpZm5kZWYgUFNSRE5PSVNFX1BFUkxJTl9HUklECiAgICAKICAgIGNvbnN0IG1hdDMgTSA9IG1hdDMoMC4wLCAxLjAsIDEuMCwKICAgICAgICAgICAgICAgICAgICAgICAgMS4wLCAwLjAsIDEuMCwKICAgICAgICAgICAgICAgICAgICAgICAgMS4wLCAxLjAsIDAuMCk7CgogICAgY29uc3QgbWF0MyBNaSA9IG1hdDMoLTAuNSwgMC41LCAwLjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjUsLTAuNSwgMC41LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMC41LCAwLjUsLTAuNSk7CiNlbmRpZgoKICAgIHZlYzMgdXZ3ID0gdmVjMygwLjApOwoKICAgIAojaWZuZGVmIFBTUkROT0lTRV9QRVJMSU5fR1JJRAogICAgCiAgICB1dncgPSBNICogeDsKI2Vsc2UKICAgIAogICAgCiAgICB1dncgPSB4ICsgZG90KHgsIHZlYzMoMC4zMzMzMzMzKSk7CiNlbmRpZgoKICAgIAogICAgdmVjMyBpMCA9IGZsb29yKHV2dyk7CiAgICB2ZWMzIGYwID0gZnJhY3QodXZ3KTsgCgogICAgCiAgICAKICAgIAogICAgCiAgICB2ZWMzIGdfID0gc3RlcChmMC54eXgsIGYwLnl6eik7IAogICAgdmVjMyBsXyA9IDEuMCAtIGdfOyAgICAgICAgICAgICAKICAgIHZlYzMgZyA9IHZlYzMobF8ueiwgZ18ueHkpOwogICAgdmVjMyBsID0gdmVjMyhsXy54eSwgZ18ueik7CiAgICB2ZWMzIG8xID0gbWluKCBnLCBsICk7CiAgICB2ZWMzIG8yID0gbWF4KCBnLCBsICk7CgogICAgCiAgICB2ZWMzIGkxID0gaTAgKyBvMTsKICAgIHZlYzMgaTIgPSBpMCArIG8yOwogICAgdmVjMyBpMyA9IGkwICsgdmVjMygxLjApOwoKICAgIHZlYzMgdjAsIHYxLCB2MiwgdjM7CgogICAgCiNpZm5kZWYgUFNSRE5PSVNFX1BFUkxJTl9HUklECiAgICB2MCA9IE1pICogaTA7CiAgICB2MSA9IE1pICogaTE7CiAgICB2MiA9IE1pICogaTI7CiAgICB2MyA9IE1pICogaTM7CiNlbHNlCiAgICAKICAgIHYwID0gaTAgLSBkb3QoaTAsIHZlYzMoMS4wLzYuMCkpOwogICAgdjEgPSBpMSAtIGRvdChpMSwgdmVjMygxLjAvNi4wKSk7CiAgICB2MiA9IGkyIC0gZG90KGkyLCB2ZWMzKDEuMC82LjApKTsKICAgIHYzID0gaTMgLSBkb3QoaTMsIHZlYzMoMS4wLzYuMCkpOwojZW5kaWYKCiAgICAKICAgIHZlYzMgeDAgPSB4IC0gdjA7CiAgICB2ZWMzIHgxID0geCAtIHYxOwogICAgdmVjMyB4MiA9IHggLSB2MjsKICAgIHZlYzMgeDMgPSB4IC0gdjM7CgogICAgaWYoYW55KGdyZWF0ZXJUaGFuKHBlcmlvZCwgdmVjMygwLjApKSkpIHsKICAgICAgICAKICAgICAgICB2ZWM0IHZ4ID0gdmVjNCh2MC54LCB2MS54LCB2Mi54LCB2My54KTsKICAgICAgICB2ZWM0IHZ5ID0gdmVjNCh2MC55LCB2MS55LCB2Mi55LCB2My55KTsKICAgICAgICB2ZWM0IHZ6ID0gdmVjNCh2MC56LCB2MS56LCB2Mi56LCB2My56KTsKICAgICAgICAKICAgICAgICBpZihwZXJpb2QueCA+IDAuMCkgdnggPSBtb2QodngsIHBlcmlvZC54KTsKICAgICAgICBpZihwZXJpb2QueSA+IDAuMCkgdnkgPSBtb2QodnksIHBlcmlvZC55KTsKICAgICAgICBpZihwZXJpb2QueiA+IDAuMCkgdnogPSBtb2QodnosIHBlcmlvZC56KTsKICAgICAgICAKI2lmbmRlZiBQU1JETk9JU0VfUEVSTElOX0dSSUQKICAgICAgICBpMCA9IE0gKiB2ZWMzKHZ4LngsIHZ5LngsIHZ6LngpOwogICAgICAgIGkxID0gTSAqIHZlYzModngueSwgdnkueSwgdnoueSk7CiAgICAgICAgaTIgPSBNICogdmVjMyh2eC56LCB2eS56LCB2ei56KTsKICAgICAgICBpMyA9IE0gKiB2ZWMzKHZ4LncsIHZ5LncsIHZ6LncpOwojZWxzZQogICAgICAgIHYwID0gdmVjMyh2eC54LCB2eS54LCB2ei54KTsKICAgICAgICB2MSA9IHZlYzModngueSwgdnkueSwgdnoueSk7CiAgICAgICAgdjIgPSB2ZWMzKHZ4LnosIHZ5LnosIHZ6LnopOwogICAgICAgIHYzID0gdmVjMyh2eC53LCB2eS53LCB2ei53KTsKICAgICAgICAKICAgICAgICBpMCA9IHYwICsgZG90KHYwLCB2ZWMzKDAuMzMzMzMzMykpOwogICAgICAgIGkxID0gdjEgKyBkb3QodjEsIHZlYzMoMC4zMzMzMzMzKSk7CiAgICAgICAgaTIgPSB2MiArIGRvdCh2MiwgdmVjMygwLjMzMzMzMzMpKTsKICAgICAgICBpMyA9IHYzICsgZG90KHYzLCB2ZWMzKDAuMzMzMzMzMykpOwojZW5kaWYKICAgICAgICAKICAgICAgICBpMCA9IGZsb29yKGkwICsgMC41KTsKICAgICAgICBpMSA9IGZsb29yKGkxICsgMC41KTsKICAgICAgICBpMiA9IGZsb29yKGkyICsgMC41KTsKICAgICAgICBpMyA9IGZsb29yKGkzICsgMC41KTsKICAgIH0KCiAgICAKICAgIHZlYzQgaGFzaCA9IHBlcm11dGUoIHBlcm11dGUoIHBlcm11dGUoIAogICAgICAgICAgICAgICAgdmVjNChpMC56LCBpMS56LCBpMi56LCBpMy56ICkpCiAgICAgICAgICAgICAgICArIHZlYzQoaTAueSwgaTEueSwgaTIueSwgaTMueSApKQogICAgICAgICAgICAgICAgKyB2ZWM0KGkwLngsIGkxLngsIGkyLngsIGkzLnggKSk7CgogICAgCiAgICB2ZWM0IHRoZXRhID0gaGFzaCAqIDMuODgzMjIyMDc3OyAgCiAgICB2ZWM0IHN6ICAgID0gaGFzaCAqIC0wLjAwNjkyMDQxNSArIDAuOTk2NTM5NzkyOyAKICAgIHZlYzQgcHNpICAgPSBoYXNoICogMC4xMDg3MDU2MjggOyAKCiAgICB2ZWM0IEN0ID0gY29zKHRoZXRhKTsKICAgIHZlYzQgU3QgPSBzaW4odGhldGEpOwogICAgdmVjNCBzel9wcmltZSA9IHNxcnQoIDEuMCAtIHN6KnN6ICk7IAoKICAgIHZlYzQgZ3gsIGd5LCBnejsKCiAgICAKI2lmZGVmIFBTUkROT0lTRV9GQVNUX1JPVEFUSU9OCiAgICAKICAgIHZlYzQgcXggPSBTdDsgICAgICAgICAKICAgIHZlYzQgcXkgPSAtQ3Q7IAogICAgdmVjNCBxeiA9IHZlYzQoMC4wKTsKCiAgICB2ZWM0IHB4ID0gIHN6ICogcXk7ICAgCiAgICB2ZWM0IHB5ID0gLXN6ICogcXg7CiAgICB2ZWM0IHB6ID0gc3pfcHJpbWU7CgogICAgcHNpICs9IGFscGhhOyAgICAgICAgIAogICAgdmVjNCBTYSA9IHNpbihwc2kpOwogICAgdmVjNCBDYSA9IGNvcyhwc2kpOwoKICAgIGd4ID0gQ2EgKiBweCArIFNhICogcXg7CiAgICBneSA9IENhICogcHkgKyBTYSAqIHF5OwogICAgZ3ogPSBDYSAqIHB6ICsgU2EgKiBxejsKICAgICNlbHNlCiAgICAKICAgIAogICAgaWYoYWxwaGEgIT0gMC4wKSB7CiAgICAgICAgdmVjNCBTcCA9IHNpbihwc2kpOyAgICAgICAgICAKICAgICAgICB2ZWM0IENwID0gY29zKHBzaSk7CgogICAgICAgIHZlYzQgcHggPSBDdCAqIHN6X3ByaW1lOyAgICAgCiAgICAgICAgdmVjNCBweSA9IFN0ICogc3pfcHJpbWU7ICAgICAKICAgICAgICB2ZWM0IHB6ID0gc3o7CgogICAgICAgIHZlYzQgQ3RwID0gU3QqU3AgLSBDdCpDcDsgICAgCiAgICAgICAgdmVjNCBxeCA9IG1peCggQ3RwKlN0LCBTcCwgc3opOwogICAgICAgIHZlYzQgcXkgPSBtaXgoLUN0cCpDdCwgQ3AsIHN6KTsKICAgICAgICB2ZWM0IHF6ID0gLShweSpDcCArIHB4KlNwKTsKCiAgICAgICAgdmVjNCBTYSA9IHZlYzQoc2luKGFscGhhKSk7ICAgICAgIAogICAgICAgIHZlYzQgQ2EgPSB2ZWM0KGNvcyhhbHBoYSkpOwoKICAgICAgICBneCA9IENhICogcHggKyBTYSAqIHF4OwogICAgICAgIGd5ID0gQ2EgKiBweSArIFNhICogcXk7CiAgICAgICAgZ3ogPSBDYSAqIHB6ICsgU2EgKiBxejsKICAgIH0KICAgIGVsc2UgewogICAgICAgIGd4ID0gQ3QgKiBzel9wcmltZTsgIAogICAgICAgIGd5ID0gU3QgKiBzel9wcmltZTsKICAgICAgICBneiA9IHN6OyAgCiAgICB9CiNlbmRpZgoKICAgIAogICAgdmVjMyBnMCA9IHZlYzMoZ3gueCwgZ3kueCwgZ3oueCk7CiAgICB2ZWMzIGcxID0gdmVjMyhneC55LCBneS55LCBnei55KTsKICAgIHZlYzMgZzIgPSB2ZWMzKGd4LnosIGd5LnosIGd6LnopOwogICAgdmVjMyBnMyA9IHZlYzMoZ3gudywgZ3kudywgZ3oudyk7CgogICAgCiAgICB2ZWM0IHcgPSAwLjUgLSB2ZWM0KGRvdCh4MCx4MCksIGRvdCh4MSx4MSksIGRvdCh4Mix4MiksIGRvdCh4Myx4MykpOwogICAgdyA9IG1heCh3LCAwLjApOwogICAgdmVjNCB3MiA9IHcgKiB3OwogICAgdmVjNCB3MyA9IHcyICogdzsKCiAgICAKICAgIHZlYzQgZ2RvdHggPSB2ZWM0KGRvdChnMCx4MCksIGRvdChnMSx4MSksIGRvdChnMix4MiksIGRvdChnMyx4MykpOwoKICAgIAogICAgZmxvYXQgbiA9IGRvdCh3MywgZ2RvdHgpOwoKICAgIAogICAgdmVjNCBkdyA9IC02LjAgKiB3MiAqIGdkb3R4OwogICAgdmVjMyBkbjAgPSB3My54ICogZzAgKyBkdy54ICogeDA7CiAgICB2ZWMzIGRuMSA9IHczLnkgKiBnMSArIGR3LnkgKiB4MTsKICAgIHZlYzMgZG4yID0gdzMueiAqIGcyICsgZHcueiAqIHgyOwogICAgdmVjMyBkbjMgPSB3My53ICogZzMgKyBkdy53ICogeDM7CiAgICBncmFkaWVudCA9IDM5LjUgKiAoZG4wICsgZG4xICsgZG4yICsgZG4zKTsKCiAgICAKICAgIHZlYzQgZHcyID0gMjQuMCAqIHcgKiBnZG90eDsKICAgIHZlYzMgZGdhMCA9IGR3Mi54ICogeDAgKiB4MCAtIDYuMCAqIHcyLnggKiAoZ2RvdHgueCArIDIuMCAqIGcwICogeDApOwogICAgdmVjMyBkZ2ExID0gZHcyLnkgKiB4MSAqIHgxIC0gNi4wICogdzIueSAqIChnZG90eC55ICsgMi4wICogZzEgKiB4MSk7CiAgICB2ZWMzIGRnYTIgPSBkdzIueiAqIHgyICogeDIgLSA2LjAgKiB3Mi56ICogKGdkb3R4LnogKyAyLjAgKiBnMiAqIHgyKTsKICAgIHZlYzMgZGdhMyA9IGR3Mi53ICogeDMgKiB4MyAtIDYuMCAqIHcyLncgKiAoZ2RvdHgudyArIDIuMCAqIGczICogeDMpOwogICAgZGcgPSAzNS4wICogKGRnYTAgKyBkZ2ExICsgZGdhMiArIGRnYTMpOyAKICAgIHZlYzMgZGdiMCA9IGR3Mi54ICogeDAgKiB4MC55enggLSA2LjAgKiB3Mi54ICogKGcwICogeDAueXp4ICsgZzAueXp4ICogeDApOwogICAgdmVjMyBkZ2IxID0gZHcyLnkgKiB4MSAqIHgxLnl6eCAtIDYuMCAqIHcyLnkgKiAoZzEgKiB4MS55enggKyBnMS55enggKiB4MSk7CiAgICB2ZWMzIGRnYjIgPSBkdzIueiAqIHgyICogeDIueXp4IC0gNi4wICogdzIueiAqIChnMiAqIHgyLnl6eCArIGcyLnl6eCAqIHgyKTsKICAgIHZlYzMgZGdiMyA9IGR3Mi53ICogeDMgKiB4My55enggLSA2LjAgKiB3Mi53ICogKGczICogeDMueXp4ICsgZzMueXp4ICogeDMpOwogICAgZGcyID0gMzkuNSAqIChkZ2IwICsgZGdiMSArIGRnYjIgKyBkZ2IzKTsgCgogICAgCiAgICByZXR1cm4gMzkuNSAqIG47Cn0KCmZsb2F0IHBzcmRub2lzZSh2ZWMzIHgsIHZlYzMgcGVyaW9kLCBmbG9hdCBhbHBoYSkgewogICAgdmVjMyBnID0gdmVjMygwLjApOwogICAgcmV0dXJuIHBzcmRub2lzZSh4LCBwZXJpb2QsIGFscGhhLCBnKTsKfQoKZmxvYXQgcHNyZG5vaXNlKHZlYzMgeCwgdmVjMyBwZXJpb2QpIHsKICAgIHJldHVybiBwc3Jkbm9pc2UoeCwgcGVyaW9kLCAwLjApOwp9CgpmbG9hdCBwc3Jkbm9pc2UodmVjMyB4KSB7CiAgICByZXR1cm4gcHNyZG5vaXNlKHgsIHZlYzMoMC4wKSk7Cn0KI2VuZGlmCgoKCgoKI2lmbmRlZiBSQU5ET01fU0NBTEUKI2lmIGRlZmluZWQoUkFORE9NX0hJR0hFUl9SQU5HRSkKI2RlZmluZSBSQU5ET01fU0NBTEUgdmVjNCguMTAzMSwgLjEwMzAsIC4wOTczLCAuMTA5OSkKI2Vsc2UKI2RlZmluZSBSQU5ET01fU0NBTEUgdmVjNCg0NDMuODk3LCA0NDEuNDIzLCAuMDk3MywgLjEwOTkpCiNlbmRpZgojZW5kaWYKCiNpZm5kZWYgRk5DX1JBTkRPTQojZGVmaW5lIEZOQ19SQU5ET00KZmxvYXQgcmFuZG9tKGluIGZsb2F0IHgpIHsKI2lmIGRlZmluZWQoUkFORE9NX1NJTkxFU1MpCiAgICB4ID0gZnJhY3QoeCAqIFJBTkRPTV9TQ0FMRS54KTsKICAgIHggKj0geCArIDMzLjMzOwogICAgeCAqPSB4ICsgeDsKICAgIHJldHVybiBmcmFjdCh4KTsKI2Vsc2UKICAgIHJldHVybiBmcmFjdChzaW4oeCkgKiA0Mzc1OC41NDUzKTsKI2VuZGlmCn0KCmZsb2F0IHJhbmRvbShpbiB2ZWMyIHN0KSB7CiNpZiBkZWZpbmVkKFJBTkRPTV9TSU5MRVNTKQogICAgdmVjMyBwMyAgPSBmcmFjdCh2ZWMzKHN0Lnh5eCkgKiBSQU5ET01fU0NBTEUueHl6KTsKICAgIHAzICs9IGRvdChwMywgcDMueXp4ICsgMzMuMzMpOwogICAgcmV0dXJuIGZyYWN0KChwMy54ICsgcDMueSkgKiBwMy56KTsKI2Vsc2UKICAgIHJldHVybiBmcmFjdChzaW4oZG90KHN0Lnh5LCB2ZWMyKDEyLjk4OTgsIDc4LjIzMykpKSAqIDQzNzU4LjU0NTMpOwojZW5kaWYKfQoKZmxvYXQgcmFuZG9tKGluIHZlYzMgcG9zKSB7CiNpZiBkZWZpbmVkKFJBTkRPTV9TSU5MRVNTKQogICAgcG9zICA9IGZyYWN0KHBvcyAqIFJBTkRPTV9TQ0FMRS54eXopOwogICAgcG9zICs9IGRvdChwb3MsIHBvcy56eXggKyAzMS4zMik7CiAgICByZXR1cm4gZnJhY3QoKHBvcy54ICsgcG9zLnkpICogcG9zLnopOwojZWxzZQogICAgcmV0dXJuIGZyYWN0KHNpbihkb3QocG9zLnh5eiwgdmVjMyg3MC45ODk4LCA3OC4yMzMsIDMyLjQzNTUpKSkgKiA0Mzc1OC41NDUzMTIzKTsKI2VuZGlmCn0KCmZsb2F0IHJhbmRvbShpbiB2ZWM0IHBvcykgewojaWYgZGVmaW5lZChSQU5ET01fU0lOTEVTUykKICAgIHBvcyA9IGZyYWN0KHBvcyAqIFJBTkRPTV9TQ0FMRSk7CiAgICBwb3MgKz0gZG90KHBvcywgcG9zLnd6eHkrMzMuMzMpOwogICAgcmV0dXJuIGZyYWN0KChwb3MueCArIHBvcy55KSAqIChwb3MueiArIHBvcy53KSk7CiNlbHNlCiAgICBmbG9hdCBkb3RfcHJvZHVjdCA9IGRvdChwb3MsIHZlYzQoMTIuOTg5OCw3OC4yMzMsNDUuMTY0LDk0LjY3MykpOwogICAgcmV0dXJuIGZyYWN0KHNpbihkb3RfcHJvZHVjdCkgKiA0Mzc1OC41NDUzKTsKI2VuZGlmCn0KCnZlYzIgcmFuZG9tMihmbG9hdCBwKSB7CiAgICB2ZWMzIHAzID0gZnJhY3QodmVjMyhwKSAqIFJBTkRPTV9TQ0FMRS54eXopOwogICAgcDMgKz0gZG90KHAzLCBwMy55enggKyAxOS4xOSk7CiAgICByZXR1cm4gZnJhY3QoKHAzLnh4ICsgcDMueXopICogcDMuenkpOwp9Cgp2ZWMyIHJhbmRvbTIodmVjMiBwKSB7CiAgICB2ZWMzIHAzID0gZnJhY3QocC54eXggKiBSQU5ET01fU0NBTEUueHl6KTsKICAgIHAzICs9IGRvdChwMywgcDMueXp4ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwMy54eCArIHAzLnl6KSAqIHAzLnp5KTsKfQoKdmVjMiByYW5kb20yKHZlYzMgcDMpIHsKICAgIHAzID0gZnJhY3QocDMgKiBSQU5ET01fU0NBTEUueHl6KTsKICAgIHAzICs9IGRvdChwMywgcDMueXp4ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwMy54eCArIHAzLnl6KSAqIHAzLnp5KTsKfQoKdmVjMyByYW5kb20zKGZsb2F0IHApIHsKICAgIHZlYzMgcDMgPSBmcmFjdCh2ZWMzKHApICogUkFORE9NX1NDQUxFLnh5eik7CiAgICBwMyArPSBkb3QocDMsIHAzLnl6eCArIDE5LjE5KTsKICAgIHJldHVybiBmcmFjdCgocDMueHh5ICsgcDMueXp6KSAqIHAzLnp5eCk7IAp9Cgp2ZWMzIHJhbmRvbTModmVjMiBwKSB7CiAgICB2ZWMzIHAzID0gZnJhY3QodmVjMyhwLnh5eCkgKiBSQU5ET01fU0NBTEUueHl6KTsKICAgIHAzICs9IGRvdChwMywgcDMueXh6ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwMy54eHkgKyBwMy55enopICogcDMuenl4KTsKfQoKdmVjMyByYW5kb20zKHZlYzMgcCkgewogICAgcCA9IGZyYWN0KHAgKiBSQU5ET01fU0NBTEUueHl6KTsKICAgIHAgKz0gZG90KHAsIHAueXh6ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwLnh4eSArIHAueXp6KSAqIHAuenl4KTsKfQoKdmVjNCByYW5kb200KGZsb2F0IHApIHsKICAgIHZlYzQgcDQgPSBmcmFjdChwICogUkFORE9NX1NDQUxFKTsKICAgIHA0ICs9IGRvdChwNCwgcDQud3p4eSArIDE5LjE5KTsKICAgIHJldHVybiBmcmFjdCgocDQueHh5eiArIHA0Lnl6encpICogcDQuenl3eCk7ICAgCn0KCnZlYzQgcmFuZG9tNCh2ZWMyIHApIHsKICAgIHZlYzQgcDQgPSBmcmFjdChwLnh5eHkgKiBSQU5ET01fU0NBTEUpOwogICAgcDQgKz0gZG90KHA0LCBwNC53enh5ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwNC54eHl6ICsgcDQueXp6dykgKiBwNC56eXd4KTsKfQoKdmVjNCByYW5kb200KHZlYzMgcCkgewogICAgdmVjNCBwNCA9IGZyYWN0KHAueHl6eCAgKiBSQU5ET01fU0NBTEUpOwogICAgcDQgKz0gZG90KHA0LCBwNC53enh5ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwNC54eHl6ICsgcDQueXp6dykgKiBwNC56eXd4KTsKfQoKdmVjNCByYW5kb200KHZlYzQgcDQpIHsKICAgIHA0ID0gZnJhY3QocDQgICogUkFORE9NX1NDQUxFKTsKICAgIHA0ICs9IGRvdChwNCwgcDQud3p4eSArIDE5LjE5KTsKICAgIHJldHVybiBmcmFjdCgocDQueHh5eiArIHA0Lnl6encpICogcDQuenl3eCk7Cn0KCgojZW5kaWYKCgoKCiNpZm5kZWYgRk5DX1dPUkxFWQojZGVmaW5lIEZOQ19XT1JMRVkKCmZsb2F0IHdvcmxleSh2ZWMyIHApewogICAgdmVjMiBuID0gZmxvb3IoIHAgKTsKICAgIHZlYzIgZiA9IGZyYWN0KCBwICk7CgogICAgZmxvYXQgZGlzID0gMS4wOwogICAgZm9yKCBpbnQgaj0gLTE7IGogPD0gMTsgaisrICkKICAgICAgICBmb3IoIGludCBpPS0xOyBpIDw9IDE7IGkrKyApIHsJCiAgICAgICAgICAgICAgICB2ZWMyICBnID0gdmVjMihpLGopOwogICAgICAgICAgICAgICAgdmVjMiAgbyA9IHJhbmRvbTIoIG4gKyBnICk7CiAgICAgICAgICAgICAgICB2ZWMyICBkZWx0YSA9IGcgKyBvIC0gZjsKICAgICAgICAgICAgICAgIGZsb2F0IGQgPSBsZW5ndGgoZGVsdGEpOwogICAgICAgICAgICAgICAgZGlzID0gbWluKGRpcyxkKTsKICAgIH0KCiAgICByZXR1cm4gMS4wLWRpczsKfQoKZmxvYXQgd29ybGV5KHZlYzMgcCkgewogICAgdmVjMyBuID0gZmxvb3IoIHAgKTsKICAgIHZlYzMgZiA9IGZyYWN0KCBwICk7CgogICAgZmxvYXQgZGlzID0gMS4wOwogICAgZm9yKCBpbnQgayA9IC0xOyBrIDw9IDE7IGsrKyApCiAgICAgICAgZm9yKCBpbnQgaj0gLTE7IGogPD0gMTsgaisrICkKICAgICAgICAgICAgZm9yKCBpbnQgaT0tMTsgaSA8PSAxOyBpKysgKSB7CQogICAgICAgICAgICAgICAgdmVjMyAgZyA9IHZlYzMoaSxqLGspOwogICAgICAgICAgICAgICAgdmVjMyAgbyA9IHJhbmRvbTMoIG4gKyBnICk7CiAgICAgICAgICAgICAgICB2ZWMzICBkZWx0YSA9IGcrby1mOwogICAgICAgICAgICAgICAgZmxvYXQgZCA9IGxlbmd0aChkZWx0YSk7CiAgICAgICAgICAgICAgICBkaXMgPSBtaW4oZGlzLGQpOwogICAgfQoKICAgIHJldHVybiAxLjAtZGlzOwp9CgojZW5kaWYKCgoKCgojaWZuZGVmIEZOQ19NT0QyODkKI2RlZmluZSBGTkNfTU9EMjg5CgpmbG9hdCBtb2QyODkoY29uc3QgaW4gZmxvYXQgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CnZlYzIgbW9kMjg5KGNvbnN0IGluIHZlYzIgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CnZlYzMgbW9kMjg5KGNvbnN0IGluIHZlYzMgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CnZlYzQgbW9kMjg5KGNvbnN0IGluIHZlYzQgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CgojZW5kaWYKCgoKCgojaWZuZGVmIEZOQ19QRVJNVVRFCiNkZWZpbmUgRk5DX1BFUk1VVEUKCmZsb2F0IHBlcm11dGUoY29uc3QgaW4gZmxvYXQgeCkgeyByZXR1cm4gbW9kMjg5KCgoeCAqIDM0LjApICsgMS4wKSAqIHgpOyB9CnZlYzIgcGVybXV0ZShjb25zdCBpbiB2ZWMyIHgpIHsgcmV0dXJuIG1vZDI4OSgoKHggKiAzNC4wKSArIDEuMCkgKiB4KTsgfQp2ZWMzIHBlcm11dGUoY29uc3QgaW4gdmVjMyB4KSB7IHJldHVybiBtb2QyODkoKCh4ICogMzQuMCkgKyAxLjApICogeCk7IH0KdmVjNCBwZXJtdXRlKGNvbnN0IGluIHZlYzQgeCkgeyByZXR1cm4gbW9kMjg5KCgoeCAqIDM0LjApICsgMS4wKSAqIHgpOyB9CgojZW5kaWYKCgoKI2lmbmRlZiBGTkNfVEFZTE9SSU5WU1FSVAojZGVmaW5lIEZOQ19UQVlMT1JJTlZTUVJUCmZsb2F0IHRheWxvckludlNxcnQoaW4gZmxvYXQgcikgeyByZXR1cm4gMS43OTI4NDI5MTQwMDE1OSAtIDAuODUzNzM0NzIwOTUzMTQgKiByOyB9CnZlYzIgdGF5bG9ySW52U3FydChpbiB2ZWMyIHIpIHsgcmV0dXJuIDEuNzkyODQyOTE0MDAxNTkgLSAwLjg1MzczNDcyMDk1MzE0ICogcjsgfQp2ZWMzIHRheWxvckludlNxcnQoaW4gdmVjMyByKSB7IHJldHVybiAxLjc5Mjg0MjkxNDAwMTU5IC0gMC44NTM3MzQ3MjA5NTMxNCAqIHI7IH0KdmVjNCB0YXlsb3JJbnZTcXJ0KGluIHZlYzQgcikgeyByZXR1cm4gMS43OTI4NDI5MTQwMDE1OSAtIDAuODUzNzM0NzIwOTUzMTQgKiByOyB9CiNlbmRpZgoKCiNpZm5kZWYgRk5DX0dSQUQ0CiNkZWZpbmUgRk5DX0dSQUQ0CnZlYzQgZ3JhZDQoZmxvYXQgaiwgdmVjNCBpcCkgewogICAgY29uc3QgdmVjNCBvbmVzID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAtMS4wKTsKICAgIHZlYzQgcCxzOwoKICAgIHAueHl6ID0gZmxvb3IoIGZyYWN0ICh2ZWMzKGopICogaXAueHl6KSAqIDcuMCkgKiBpcC56IC0gMS4wOwogICAgcC53ID0gMS41IC0gZG90KGFicyhwLnh5eiksIG9uZXMueHl6KTsKICAgIHMgPSB2ZWM0KGxlc3NUaGFuKHAsIHZlYzQoMC4wKSkpOwogICAgcC54eXogPSBwLnh5eiArIChzLnh5eioyLjAgLSAxLjApICogcy53d3c7CgogICAgcmV0dXJuIHA7Cn0KI2VuZGlmCgoKCgojaWZuZGVmIEZOQ19TTk9JU0UKI2RlZmluZSBGTkNfU05PSVNFCmZsb2F0IHNub2lzZShpbiB2ZWMyIHYpIHsKICAgIGNvbnN0IHZlYzQgQyA9IHZlYzQoMC4yMTEzMjQ4NjU0MDUxODcsICAKICAgICAgICAgICAgICAgICAgICAgICAgMC4zNjYwMjU0MDM3ODQ0MzksICAKICAgICAgICAgICAgICAgICAgICAgICAgLTAuNTc3MzUwMjY5MTg5NjI2LCAgCiAgICAgICAgICAgICAgICAgICAgICAgIDAuMDI0MzkwMjQzOTAyNDM5KTsgCiAgICAKICAgIHZlYzIgaSAgPSBmbG9vcih2ICsgZG90KHYsIEMueXkpICk7CiAgICB2ZWMyIHgwID0gdiAtICAgaSArIGRvdChpLCBDLnh4KTsKCiAgICAKICAgIHZlYzIgaTE7CiAgICAKICAgIAogICAgaTEgPSAoeDAueCA+IHgwLnkpID8gdmVjMigxLjAsIDAuMCkgOiB2ZWMyKDAuMCwgMS4wKTsKICAgIAogICAgCiAgICAKICAgIHZlYzQgeDEyID0geDAueHl4eSArIEMueHh6ejsKICAgIHgxMi54eSAtPSBpMTsKCiAgICAKICAgIGkgPSBtb2QyODkoaSk7IAogICAgdmVjMyBwID0gcGVybXV0ZSggcGVybXV0ZSggaS55ICsgdmVjMygwLjAsIGkxLnksIDEuMCApKQogICAgKyBpLnggKyB2ZWMzKDAuMCwgaTEueCwgMS4wICkpOwoKICAgIHZlYzMgbSA9IG1heCgwLjUgLSB2ZWMzKGRvdCh4MCx4MCksIGRvdCh4MTIueHkseDEyLnh5KSwgZG90KHgxMi56dyx4MTIuencpKSwgMC4wKTsKICAgIG0gPSBtKm0gOwogICAgbSA9IG0qbSA7CgogICAgCiAgICAKCiAgICB2ZWMzIHggPSAyLjAgKiBmcmFjdChwICogQy53d3cpIC0gMS4wOwogICAgdmVjMyBoID0gYWJzKHgpIC0gMC41OwogICAgdmVjMyBveCA9IGZsb29yKHggKyAwLjUpOwogICAgdmVjMyBhMCA9IHggLSBveDsKCiAgICAKICAgIAogICAgbSAqPSAxLjc5Mjg0MjkxNDAwMTU5IC0gMC44NTM3MzQ3MjA5NTMxNCAqICggYTAqYTAgKyBoKmggKTsKCiAgICAKICAgIHZlYzMgZzsKICAgIGcueCAgPSBhMC54ICAqIHgwLnggICsgaC54ICAqIHgwLnk7CiAgICBnLnl6ID0gYTAueXogKiB4MTIueHogKyBoLnl6ICogeDEyLnl3OwogICAgcmV0dXJuIDEzMC4wICogZG90KG0sIGcpOwp9CgoKZmxvYXQgc25vaXNlKGluIHZlYzMgdikgewogICAgY29uc3QgdmVjMiAgQyA9IHZlYzIoMS4wLzYuMCwgMS4wLzMuMCkgOwogICAgY29uc3QgdmVjNCAgRCA9IHZlYzQoMC4wLCAwLjUsIDEuMCwgMi4wKTsKCiAgICAKICAgIHZlYzMgaSAgPSBmbG9vcih2ICsgZG90KHYsIEMueXl5KSApOwogICAgdmVjMyB4MCA9ICAgdiAtIGkgKyBkb3QoaSwgQy54eHgpIDsKCiAgICAKICAgIHZlYzMgZyA9IHN0ZXAoeDAueXp4LCB4MC54eXopOwogICAgdmVjMyBsID0gMS4wIC0gZzsKICAgIHZlYzMgaTEgPSBtaW4oIGcueHl6LCBsLnp4eSApOwogICAgdmVjMyBpMiA9IG1heCggZy54eXosIGwuenh5ICk7CgogICAgCiAgICAKICAgIAogICAgCiAgICB2ZWMzIHgxID0geDAgLSBpMSArIEMueHh4OwogICAgdmVjMyB4MiA9IHgwIC0gaTIgKyBDLnl5eTsgCiAgICB2ZWMzIHgzID0geDAgLSBELnl5eTsgICAgICAKCiAgICAKICAgIGkgPSBtb2QyODkoaSk7CiAgICB2ZWM0IHAgPSBwZXJtdXRlKCBwZXJtdXRlKCBwZXJtdXRlKAogICAgICAgICAgICAgICAgaS56ICsgdmVjNCgwLjAsIGkxLnosIGkyLnosIDEuMCApKQogICAgICAgICAgICArIGkueSArIHZlYzQoMC4wLCBpMS55LCBpMi55LCAxLjAgKSkKICAgICAgICAgICAgKyBpLnggKyB2ZWM0KDAuMCwgaTEueCwgaTIueCwgMS4wICkpOwoKICAgIAogICAgCiAgICBmbG9hdCBuXyA9IDAuMTQyODU3MTQyODU3OyAKICAgIHZlYzMgIG5zID0gbl8gKiBELnd5eiAtIEQueHp4OwoKICAgIHZlYzQgaiA9IHAgLSA0OS4wICogZmxvb3IocCAqIG5zLnogKiBucy56KTsgIAoKICAgIHZlYzQgeF8gPSBmbG9vcihqICogbnMueik7CiAgICB2ZWM0IHlfID0gZmxvb3IoaiAtIDcuMCAqIHhfICk7ICAgIAoKICAgIHZlYzQgeCA9IHhfICpucy54ICsgbnMueXl5eTsKICAgIHZlYzQgeSA9IHlfICpucy54ICsgbnMueXl5eTsKICAgIHZlYzQgaCA9IDEuMCAtIGFicyh4KSAtIGFicyh5KTsKCiAgICB2ZWM0IGIwID0gdmVjNCggeC54eSwgeS54eSApOwogICAgdmVjNCBiMSA9IHZlYzQoIHguencsIHkuencgKTsKCiAgICAKICAgIAogICAgdmVjNCBzMCA9IGZsb29yKGIwKSoyLjAgKyAxLjA7CiAgICB2ZWM0IHMxID0gZmxvb3IoYjEpKjIuMCArIDEuMDsKICAgIHZlYzQgc2ggPSAtc3RlcChoLCB2ZWM0KDAuMCkpOwoKICAgIHZlYzQgYTAgPSBiMC54enl3ICsgczAueHp5dypzaC54eHl5IDsKICAgIHZlYzQgYTEgPSBiMS54enl3ICsgczEueHp5dypzaC56end3IDsKCiAgICB2ZWMzIHAwID0gdmVjMyhhMC54eSxoLngpOwogICAgdmVjMyBwMSA9IHZlYzMoYTAuencsaC55KTsKICAgIHZlYzMgcDIgPSB2ZWMzKGExLnh5LGgueik7CiAgICB2ZWMzIHAzID0gdmVjMyhhMS56dyxoLncpOwoKICAgIAogICAgdmVjNCBub3JtID0gdGF5bG9ySW52U3FydCh2ZWM0KGRvdChwMCxwMCksIGRvdChwMSxwMSksIGRvdChwMiwgcDIpLCBkb3QocDMscDMpKSk7CiAgICBwMCAqPSBub3JtLng7CiAgICBwMSAqPSBub3JtLnk7CiAgICBwMiAqPSBub3JtLno7CiAgICBwMyAqPSBub3JtLnc7CgogICAgCiAgICB2ZWM0IG0gPSBtYXgoMC42IC0gdmVjNChkb3QoeDAseDApLCBkb3QoeDEseDEpLCBkb3QoeDIseDIpLCBkb3QoeDMseDMpKSwgMC4wKTsKICAgIG0gPSBtICogbTsKICAgIHJldHVybiA0Mi4wICogZG90KCBtKm0sIHZlYzQoIGRvdChwMCx4MCksIGRvdChwMSx4MSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG90KHAyLHgyKSwgZG90KHAzLHgzKSApICk7Cn0KCmZsb2F0IHNub2lzZShpbiB2ZWM0IHYpIHsKICAgIGNvbnN0IHZlYzQgIEMgPSB2ZWM0KCAwLjEzODE5NjYwMTEyNTAxMSwgIAogICAgICAgICAgICAgICAgICAgICAgICAwLjI3NjM5MzIwMjI1MDAyMSwgIAogICAgICAgICAgICAgICAgICAgICAgICAwLjQxNDU4OTgwMzM3NTAzMiwgIAogICAgICAgICAgICAgICAgICAgICAgICAtMC40NDcyMTM1OTU0OTk5NTgpOyAKCiAgICAKICAgIHZlYzQgaSAgPSBmbG9vcih2ICsgZG90KHYsIHZlYzQoLjMwOTAxNjk5NDM3NDk0NzQ1MSkpICk7IAogICAgdmVjNCB4MCA9IHYgLSAgIGkgKyBkb3QoaSwgQy54eHh4KTsKCiAgICAKCiAgICAKICAgIHZlYzQgaTA7CiAgICB2ZWMzIGlzWCA9IHN0ZXAoIHgwLnl6dywgeDAueHh4ICk7CiAgICB2ZWMzIGlzWVogPSBzdGVwKCB4MC56d3csIHgwLnl5eiApOwogICAgCiAgICBpMC54ID0gaXNYLnggKyBpc1gueSArIGlzWC56OwogICAgaTAueXp3ID0gMS4wIC0gaXNYOwogICAgCiAgICBpMC55ICs9IGlzWVoueCArIGlzWVoueTsKICAgIGkwLnp3ICs9IDEuMCAtIGlzWVoueHk7CiAgICBpMC56ICs9IGlzWVouejsKICAgIGkwLncgKz0gMS4wIC0gaXNZWi56OwoKICAgIAogICAgdmVjNCBpMyA9IGNsYW1wKCBpMCwgMC4wLCAxLjAgKTsKICAgIHZlYzQgaTIgPSBjbGFtcCggaTAtMS4wLCAwLjAsIDEuMCApOwogICAgdmVjNCBpMSA9IGNsYW1wKCBpMC0yLjAsIDAuMCwgMS4wICk7CgogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIHZlYzQgeDEgPSB4MCAtIGkxICsgQy54eHh4OwogICAgdmVjNCB4MiA9IHgwIC0gaTIgKyBDLnl5eXk7CiAgICB2ZWM0IHgzID0geDAgLSBpMyArIEMuenp6ejsKICAgIHZlYzQgeDQgPSB4MCArIEMud3d3dzsKCiAgICAKICAgIGkgPSBtb2QyODkoaSk7CiAgICBmbG9hdCBqMCA9IHBlcm11dGUoIHBlcm11dGUoIHBlcm11dGUoIHBlcm11dGUoaS53KSArIGkueikgKyBpLnkpICsgaS54KTsKICAgIHZlYzQgajEgPSBwZXJtdXRlKCBwZXJtdXRlKCBwZXJtdXRlKCBwZXJtdXRlICgKICAgICAgICAgICAgICAgIGkudyArIHZlYzQoaTEudywgaTIudywgaTMudywgMS4wICkpCiAgICAgICAgICAgICsgaS56ICsgdmVjNChpMS56LCBpMi56LCBpMy56LCAxLjAgKSkKICAgICAgICAgICAgKyBpLnkgKyB2ZWM0KGkxLnksIGkyLnksIGkzLnksIDEuMCApKQogICAgICAgICAgICArIGkueCArIHZlYzQoaTEueCwgaTIueCwgaTMueCwgMS4wICkpOwoKICAgIAogICAgCiAgICB2ZWM0IGlwID0gdmVjNCgxLjAvMjk0LjAsIDEuMC80OS4wLCAxLjAvNy4wLCAwLjApIDsKCiAgICB2ZWM0IHAwID0gZ3JhZDQoajAsICAgaXApOwogICAgdmVjNCBwMSA9IGdyYWQ0KGoxLngsIGlwKTsKICAgIHZlYzQgcDIgPSBncmFkNChqMS55LCBpcCk7CiAgICB2ZWM0IHAzID0gZ3JhZDQoajEueiwgaXApOwogICAgdmVjNCBwNCA9IGdyYWQ0KGoxLncsIGlwKTsKCiAgICAKICAgIHZlYzQgbm9ybSA9IHRheWxvckludlNxcnQodmVjNChkb3QocDAscDApLCBkb3QocDEscDEpLCBkb3QocDIsIHAyKSwgZG90KHAzLHAzKSkpOwogICAgcDAgKj0gbm9ybS54OwogICAgcDEgKj0gbm9ybS55OwogICAgcDIgKj0gbm9ybS56OwogICAgcDMgKj0gbm9ybS53OwogICAgcDQgKj0gdGF5bG9ySW52U3FydChkb3QocDQscDQpKTsKCiAgICAKICAgIHZlYzMgbTAgPSBtYXgoMC42IC0gdmVjMyhkb3QoeDAseDApLCBkb3QoeDEseDEpLCBkb3QoeDIseDIpKSwgMC4wKTsKICAgIHZlYzIgbTEgPSBtYXgoMC42IC0gdmVjMihkb3QoeDMseDMpLCBkb3QoeDQseDQpICAgICAgICAgICAgKSwgMC4wKTsKICAgIG0wID0gbTAgKiBtMDsKICAgIG0xID0gbTEgKiBtMTsKICAgIHJldHVybiA0OS4wICogKCBkb3QobTAqbTAsIHZlYzMoIGRvdCggcDAsIHgwICksIGRvdCggcDEsIHgxICksIGRvdCggcDIsIHgyICkpKQogICAgICAgICAgICAgICAgKyBkb3QobTEqbTEsIHZlYzIoIGRvdCggcDMsIHgzICksIGRvdCggcDQsIHg0ICkgKSApICkgOwp9Cgp2ZWMyIHNub2lzZTIoIHZlYzIgeCApewogICAgZmxvYXQgcyAgPSBzbm9pc2UodmVjMiggeCApKTsKICAgIGZsb2F0IHMxID0gc25vaXNlKHZlYzIoIHgueSAtIDE5LjEsIHgueCArIDQ3LjIgKSk7CiAgICByZXR1cm4gdmVjMiggcyAsIHMxICk7Cn0KCnZlYzMgc25vaXNlMyggdmVjMyB4ICl7CiAgICBmbG9hdCBzICA9IHNub2lzZSh2ZWMzKCB4ICkpOwogICAgZmxvYXQgczEgPSBzbm9pc2UodmVjMyggeC55IC0gMTkuMSAsIHgueiArIDMzLjQgLCB4LnggKyA0Ny4yICkpOwogICAgZmxvYXQgczIgPSBzbm9pc2UodmVjMyggeC56ICsgNzQuMiAsIHgueCAtIDEyNC41ICwgeC55ICsgOTkuNCApKTsKICAgIHJldHVybiB2ZWMzKCBzICwgczEgLCBzMiApOwp9Cgp2ZWMzIHNub2lzZTMoIHZlYzQgeCApewogICAgZmxvYXQgcyAgPSBzbm9pc2UodmVjNCggeCApKTsKICAgIGZsb2F0IHMxID0gc25vaXNlKHZlYzQoIHgueSAtIDE5LjEgLCB4LnogKyAzMy40ICwgeC54ICsgNDcuMiwgeC53ICkpOwogICAgZmxvYXQgczIgPSBzbm9pc2UodmVjNCggeC56ICsgNzQuMiAsIHgueCAtIDEyNC41ICwgeC55ICsgOTkuNCwgeC53ICkpOwogICAgcmV0dXJuIHZlYzMoIHMgLCBzMSAsIHMyICk7Cn0KCiNlbmRpZgoKCgoKCgojaWZuZGVmIEZOQ19NT0QyODkKI2RlZmluZSBGTkNfTU9EMjg5CgpmbG9hdCBtb2QyODkoY29uc3QgaW4gZmxvYXQgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CnZlYzIgbW9kMjg5KGNvbnN0IGluIHZlYzIgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CnZlYzMgbW9kMjg5KGNvbnN0IGluIHZlYzMgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CnZlYzQgbW9kMjg5KGNvbnN0IGluIHZlYzQgeCkgeyByZXR1cm4geCAtIGZsb29yKHggKiAoMS4gLyAyODkuKSkgKiAyODkuOyB9CgojZW5kaWYKCgoKCgojaWZuZGVmIEZOQ19QRVJNVVRFCiNkZWZpbmUgRk5DX1BFUk1VVEUKCmZsb2F0IHBlcm11dGUoY29uc3QgaW4gZmxvYXQgeCkgeyByZXR1cm4gbW9kMjg5KCgoeCAqIDM0LjApICsgMS4wKSAqIHgpOyB9CnZlYzIgcGVybXV0ZShjb25zdCBpbiB2ZWMyIHgpIHsgcmV0dXJuIG1vZDI4OSgoKHggKiAzNC4wKSArIDEuMCkgKiB4KTsgfQp2ZWMzIHBlcm11dGUoY29uc3QgaW4gdmVjMyB4KSB7IHJldHVybiBtb2QyODkoKCh4ICogMzQuMCkgKyAxLjApICogeCk7IH0KdmVjNCBwZXJtdXRlKGNvbnN0IGluIHZlYzQgeCkgeyByZXR1cm4gbW9kMjg5KCgoeCAqIDM0LjApICsgMS4wKSAqIHgpOyB9CgojZW5kaWYKCgoKI2lmbmRlZiBGTkNfVEFZTE9SSU5WU1FSVAojZGVmaW5lIEZOQ19UQVlMT1JJTlZTUVJUCmZsb2F0IHRheWxvckludlNxcnQoaW4gZmxvYXQgcikgeyByZXR1cm4gMS43OTI4NDI5MTQwMDE1OSAtIDAuODUzNzM0NzIwOTUzMTQgKiByOyB9CnZlYzIgdGF5bG9ySW52U3FydChpbiB2ZWMyIHIpIHsgcmV0dXJuIDEuNzkyODQyOTE0MDAxNTkgLSAwLjg1MzczNDcyMDk1MzE0ICogcjsgfQp2ZWMzIHRheWxvckludlNxcnQoaW4gdmVjMyByKSB7IHJldHVybiAxLjc5Mjg0MjkxNDAwMTU5IC0gMC44NTM3MzQ3MjA5NTMxNCAqIHI7IH0KdmVjNCB0YXlsb3JJbnZTcXJ0KGluIHZlYzQgcikgeyByZXR1cm4gMS43OTI4NDI5MTQwMDE1OSAtIDAuODUzNzM0NzIwOTUzMTQgKiByOyB9CiNlbmRpZgoKCiNpZm5kZWYgRk5DX0dSQUQ0CiNkZWZpbmUgRk5DX0dSQUQ0CnZlYzQgZ3JhZDQoZmxvYXQgaiwgdmVjNCBpcCkgewogICAgY29uc3QgdmVjNCBvbmVzID0gdmVjNCgxLjAsIDEuMCwgMS4wLCAtMS4wKTsKICAgIHZlYzQgcCxzOwoKICAgIHAueHl6ID0gZmxvb3IoIGZyYWN0ICh2ZWMzKGopICogaXAueHl6KSAqIDcuMCkgKiBpcC56IC0gMS4wOwogICAgcC53ID0gMS41IC0gZG90KGFicyhwLnh5eiksIG9uZXMueHl6KTsKICAgIHMgPSB2ZWM0KGxlc3NUaGFuKHAsIHZlYzQoMC4wKSkpOwogICAgcC54eXogPSBwLnh5eiArIChzLnh5eioyLjAgLSAxLjApICogcy53d3c7CgogICAgcmV0dXJuIHA7Cn0KI2VuZGlmCgoKCgojaWZuZGVmIEZOQ19TTk9JU0UKI2RlZmluZSBGTkNfU05PSVNFCmZsb2F0IHNub2lzZShpbiB2ZWMyIHYpIHsKICAgIGNvbnN0IHZlYzQgQyA9IHZlYzQoMC4yMTEzMjQ4NjU0MDUxODcsICAKICAgICAgICAgICAgICAgICAgICAgICAgMC4zNjYwMjU0MDM3ODQ0MzksICAKICAgICAgICAgICAgICAgICAgICAgICAgLTAuNTc3MzUwMjY5MTg5NjI2LCAgCiAgICAgICAgICAgICAgICAgICAgICAgIDAuMDI0MzkwMjQzOTAyNDM5KTsgCiAgICAKICAgIHZlYzIgaSAgPSBmbG9vcih2ICsgZG90KHYsIEMueXkpICk7CiAgICB2ZWMyIHgwID0gdiAtICAgaSArIGRvdChpLCBDLnh4KTsKCiAgICAKICAgIHZlYzIgaTE7CiAgICAKICAgIAogICAgaTEgPSAoeDAueCA+IHgwLnkpID8gdmVjMigxLjAsIDAuMCkgOiB2ZWMyKDAuMCwgMS4wKTsKICAgIAogICAgCiAgICAKICAgIHZlYzQgeDEyID0geDAueHl4eSArIEMueHh6ejsKICAgIHgxMi54eSAtPSBpMTsKCiAgICAKICAgIGkgPSBtb2QyODkoaSk7IAogICAgdmVjMyBwID0gcGVybXV0ZSggcGVybXV0ZSggaS55ICsgdmVjMygwLjAsIGkxLnksIDEuMCApKQogICAgKyBpLnggKyB2ZWMzKDAuMCwgaTEueCwgMS4wICkpOwoKICAgIHZlYzMgbSA9IG1heCgwLjUgLSB2ZWMzKGRvdCh4MCx4MCksIGRvdCh4MTIueHkseDEyLnh5KSwgZG90KHgxMi56dyx4MTIuencpKSwgMC4wKTsKICAgIG0gPSBtKm0gOwogICAgbSA9IG0qbSA7CgogICAgCiAgICAKCiAgICB2ZWMzIHggPSAyLjAgKiBmcmFjdChwICogQy53d3cpIC0gMS4wOwogICAgdmVjMyBoID0gYWJzKHgpIC0gMC41OwogICAgdmVjMyBveCA9IGZsb29yKHggKyAwLjUpOwogICAgdmVjMyBhMCA9IHggLSBveDsKCiAgICAKICAgIAogICAgbSAqPSAxLjc5Mjg0MjkxNDAwMTU5IC0gMC44NTM3MzQ3MjA5NTMxNCAqICggYTAqYTAgKyBoKmggKTsKCiAgICAKICAgIHZlYzMgZzsKICAgIGcueCAgPSBhMC54ICAqIHgwLnggICsgaC54ICAqIHgwLnk7CiAgICBnLnl6ID0gYTAueXogKiB4MTIueHogKyBoLnl6ICogeDEyLnl3OwogICAgcmV0dXJuIDEzMC4wICogZG90KG0sIGcpOwp9CgoKZmxvYXQgc25vaXNlKGluIHZlYzMgdikgewogICAgY29uc3QgdmVjMiAgQyA9IHZlYzIoMS4wLzYuMCwgMS4wLzMuMCkgOwogICAgY29uc3QgdmVjNCAgRCA9IHZlYzQoMC4wLCAwLjUsIDEuMCwgMi4wKTsKCiAgICAKICAgIHZlYzMgaSAgPSBmbG9vcih2ICsgZG90KHYsIEMueXl5KSApOwogICAgdmVjMyB4MCA9ICAgdiAtIGkgKyBkb3QoaSwgQy54eHgpIDsKCiAgICAKICAgIHZlYzMgZyA9IHN0ZXAoeDAueXp4LCB4MC54eXopOwogICAgdmVjMyBsID0gMS4wIC0gZzsKICAgIHZlYzMgaTEgPSBtaW4oIGcueHl6LCBsLnp4eSApOwogICAgdmVjMyBpMiA9IG1heCggZy54eXosIGwuenh5ICk7CgogICAgCiAgICAKICAgIAogICAgCiAgICB2ZWMzIHgxID0geDAgLSBpMSArIEMueHh4OwogICAgdmVjMyB4MiA9IHgwIC0gaTIgKyBDLnl5eTsgCiAgICB2ZWMzIHgzID0geDAgLSBELnl5eTsgICAgICAKCiAgICAKICAgIGkgPSBtb2QyODkoaSk7CiAgICB2ZWM0IHAgPSBwZXJtdXRlKCBwZXJtdXRlKCBwZXJtdXRlKAogICAgICAgICAgICAgICAgaS56ICsgdmVjNCgwLjAsIGkxLnosIGkyLnosIDEuMCApKQogICAgICAgICAgICArIGkueSArIHZlYzQoMC4wLCBpMS55LCBpMi55LCAxLjAgKSkKICAgICAgICAgICAgKyBpLnggKyB2ZWM0KDAuMCwgaTEueCwgaTIueCwgMS4wICkpOwoKICAgIAogICAgCiAgICBmbG9hdCBuXyA9IDAuMTQyODU3MTQyODU3OyAKICAgIHZlYzMgIG5zID0gbl8gKiBELnd5eiAtIEQueHp4OwoKICAgIHZlYzQgaiA9IHAgLSA0OS4wICogZmxvb3IocCAqIG5zLnogKiBucy56KTsgIAoKICAgIHZlYzQgeF8gPSBmbG9vcihqICogbnMueik7CiAgICB2ZWM0IHlfID0gZmxvb3IoaiAtIDcuMCAqIHhfICk7ICAgIAoKICAgIHZlYzQgeCA9IHhfICpucy54ICsgbnMueXl5eTsKICAgIHZlYzQgeSA9IHlfICpucy54ICsgbnMueXl5eTsKICAgIHZlYzQgaCA9IDEuMCAtIGFicyh4KSAtIGFicyh5KTsKCiAgICB2ZWM0IGIwID0gdmVjNCggeC54eSwgeS54eSApOwogICAgdmVjNCBiMSA9IHZlYzQoIHguencsIHkuencgKTsKCiAgICAKICAgIAogICAgdmVjNCBzMCA9IGZsb29yKGIwKSoyLjAgKyAxLjA7CiAgICB2ZWM0IHMxID0gZmxvb3IoYjEpKjIuMCArIDEuMDsKICAgIHZlYzQgc2ggPSAtc3RlcChoLCB2ZWM0KDAuMCkpOwoKICAgIHZlYzQgYTAgPSBiMC54enl3ICsgczAueHp5dypzaC54eHl5IDsKICAgIHZlYzQgYTEgPSBiMS54enl3ICsgczEueHp5dypzaC56end3IDsKCiAgICB2ZWMzIHAwID0gdmVjMyhhMC54eSxoLngpOwogICAgdmVjMyBwMSA9IHZlYzMoYTAuencsaC55KTsKICAgIHZlYzMgcDIgPSB2ZWMzKGExLnh5LGgueik7CiAgICB2ZWMzIHAzID0gdmVjMyhhMS56dyxoLncpOwoKICAgIAogICAgdmVjNCBub3JtID0gdGF5bG9ySW52U3FydCh2ZWM0KGRvdChwMCxwMCksIGRvdChwMSxwMSksIGRvdChwMiwgcDIpLCBkb3QocDMscDMpKSk7CiAgICBwMCAqPSBub3JtLng7CiAgICBwMSAqPSBub3JtLnk7CiAgICBwMiAqPSBub3JtLno7CiAgICBwMyAqPSBub3JtLnc7CgogICAgCiAgICB2ZWM0IG0gPSBtYXgoMC42IC0gdmVjNChkb3QoeDAseDApLCBkb3QoeDEseDEpLCBkb3QoeDIseDIpLCBkb3QoeDMseDMpKSwgMC4wKTsKICAgIG0gPSBtICogbTsKICAgIHJldHVybiA0Mi4wICogZG90KCBtKm0sIHZlYzQoIGRvdChwMCx4MCksIGRvdChwMSx4MSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG90KHAyLHgyKSwgZG90KHAzLHgzKSApICk7Cn0KCmZsb2F0IHNub2lzZShpbiB2ZWM0IHYpIHsKICAgIGNvbnN0IHZlYzQgIEMgPSB2ZWM0KCAwLjEzODE5NjYwMTEyNTAxMSwgIAogICAgICAgICAgICAgICAgICAgICAgICAwLjI3NjM5MzIwMjI1MDAyMSwgIAogICAgICAgICAgICAgICAgICAgICAgICAwLjQxNDU4OTgwMzM3NTAzMiwgIAogICAgICAgICAgICAgICAgICAgICAgICAtMC40NDcyMTM1OTU0OTk5NTgpOyAKCiAgICAKICAgIHZlYzQgaSAgPSBmbG9vcih2ICsgZG90KHYsIHZlYzQoLjMwOTAxNjk5NDM3NDk0NzQ1MSkpICk7IAogICAgdmVjNCB4MCA9IHYgLSAgIGkgKyBkb3QoaSwgQy54eHh4KTsKCiAgICAKCiAgICAKICAgIHZlYzQgaTA7CiAgICB2ZWMzIGlzWCA9IHN0ZXAoIHgwLnl6dywgeDAueHh4ICk7CiAgICB2ZWMzIGlzWVogPSBzdGVwKCB4MC56d3csIHgwLnl5eiApOwogICAgCiAgICBpMC54ID0gaXNYLnggKyBpc1gueSArIGlzWC56OwogICAgaTAueXp3ID0gMS4wIC0gaXNYOwogICAgCiAgICBpMC55ICs9IGlzWVoueCArIGlzWVoueTsKICAgIGkwLnp3ICs9IDEuMCAtIGlzWVoueHk7CiAgICBpMC56ICs9IGlzWVouejsKICAgIGkwLncgKz0gMS4wIC0gaXNZWi56OwoKICAgIAogICAgdmVjNCBpMyA9IGNsYW1wKCBpMCwgMC4wLCAxLjAgKTsKICAgIHZlYzQgaTIgPSBjbGFtcCggaTAtMS4wLCAwLjAsIDEuMCApOwogICAgdmVjNCBpMSA9IGNsYW1wKCBpMC0yLjAsIDAuMCwgMS4wICk7CgogICAgCiAgICAKICAgIAogICAgCiAgICAKICAgIHZlYzQgeDEgPSB4MCAtIGkxICsgQy54eHh4OwogICAgdmVjNCB4MiA9IHgwIC0gaTIgKyBDLnl5eXk7CiAgICB2ZWM0IHgzID0geDAgLSBpMyArIEMuenp6ejsKICAgIHZlYzQgeDQgPSB4MCArIEMud3d3dzsKCiAgICAKICAgIGkgPSBtb2QyODkoaSk7CiAgICBmbG9hdCBqMCA9IHBlcm11dGUoIHBlcm11dGUoIHBlcm11dGUoIHBlcm11dGUoaS53KSArIGkueikgKyBpLnkpICsgaS54KTsKICAgIHZlYzQgajEgPSBwZXJtdXRlKCBwZXJtdXRlKCBwZXJtdXRlKCBwZXJtdXRlICgKICAgICAgICAgICAgICAgIGkudyArIHZlYzQoaTEudywgaTIudywgaTMudywgMS4wICkpCiAgICAgICAgICAgICsgaS56ICsgdmVjNChpMS56LCBpMi56LCBpMy56LCAxLjAgKSkKICAgICAgICAgICAgKyBpLnkgKyB2ZWM0KGkxLnksIGkyLnksIGkzLnksIDEuMCApKQogICAgICAgICAgICArIGkueCArIHZlYzQoaTEueCwgaTIueCwgaTMueCwgMS4wICkpOwoKICAgIAogICAgCiAgICB2ZWM0IGlwID0gdmVjNCgxLjAvMjk0LjAsIDEuMC80OS4wLCAxLjAvNy4wLCAwLjApIDsKCiAgICB2ZWM0IHAwID0gZ3JhZDQoajAsICAgaXApOwogICAgdmVjNCBwMSA9IGdyYWQ0KGoxLngsIGlwKTsKICAgIHZlYzQgcDIgPSBncmFkNChqMS55LCBpcCk7CiAgICB2ZWM0IHAzID0gZ3JhZDQoajEueiwgaXApOwogICAgdmVjNCBwNCA9IGdyYWQ0KGoxLncsIGlwKTsKCiAgICAKICAgIHZlYzQgbm9ybSA9IHRheWxvckludlNxcnQodmVjNChkb3QocDAscDApLCBkb3QocDEscDEpLCBkb3QocDIsIHAyKSwgZG90KHAzLHAzKSkpOwogICAgcDAgKj0gbm9ybS54OwogICAgcDEgKj0gbm9ybS55OwogICAgcDIgKj0gbm9ybS56OwogICAgcDMgKj0gbm9ybS53OwogICAgcDQgKj0gdGF5bG9ySW52U3FydChkb3QocDQscDQpKTsKCiAgICAKICAgIHZlYzMgbTAgPSBtYXgoMC42IC0gdmVjMyhkb3QoeDAseDApLCBkb3QoeDEseDEpLCBkb3QoeDIseDIpKSwgMC4wKTsKICAgIHZlYzIgbTEgPSBtYXgoMC42IC0gdmVjMihkb3QoeDMseDMpLCBkb3QoeDQseDQpICAgICAgICAgICAgKSwgMC4wKTsKICAgIG0wID0gbTAgKiBtMDsKICAgIG0xID0gbTEgKiBtMTsKICAgIHJldHVybiA0OS4wICogKCBkb3QobTAqbTAsIHZlYzMoIGRvdCggcDAsIHgwICksIGRvdCggcDEsIHgxICksIGRvdCggcDIsIHgyICkpKQogICAgICAgICAgICAgICAgKyBkb3QobTEqbTEsIHZlYzIoIGRvdCggcDMsIHgzICksIGRvdCggcDQsIHg0ICkgKSApICkgOwp9Cgp2ZWMyIHNub2lzZTIoIHZlYzIgeCApewogICAgZmxvYXQgcyAgPSBzbm9pc2UodmVjMiggeCApKTsKICAgIGZsb2F0IHMxID0gc25vaXNlKHZlYzIoIHgueSAtIDE5LjEsIHgueCArIDQ3LjIgKSk7CiAgICByZXR1cm4gdmVjMiggcyAsIHMxICk7Cn0KCnZlYzMgc25vaXNlMyggdmVjMyB4ICl7CiAgICBmbG9hdCBzICA9IHNub2lzZSh2ZWMzKCB4ICkpOwogICAgZmxvYXQgczEgPSBzbm9pc2UodmVjMyggeC55IC0gMTkuMSAsIHgueiArIDMzLjQgLCB4LnggKyA0Ny4yICkpOwogICAgZmxvYXQgczIgPSBzbm9pc2UodmVjMyggeC56ICsgNzQuMiAsIHgueCAtIDEyNC41ICwgeC55ICsgOTkuNCApKTsKICAgIHJldHVybiB2ZWMzKCBzICwgczEgLCBzMiApOwp9Cgp2ZWMzIHNub2lzZTMoIHZlYzQgeCApewogICAgZmxvYXQgcyAgPSBzbm9pc2UodmVjNCggeCApKTsKICAgIGZsb2F0IHMxID0gc25vaXNlKHZlYzQoIHgueSAtIDE5LjEgLCB4LnogKyAzMy40ICwgeC54ICsgNDcuMiwgeC53ICkpOwogICAgZmxvYXQgczIgPSBzbm9pc2UodmVjNCggeC56ICsgNzQuMiAsIHgueCAtIDEyNC41ICwgeC55ICsgOTkuNCwgeC53ICkpOwogICAgcmV0dXJuIHZlYzMoIHMgLCBzMSAsIHMyICk7Cn0KCiNlbmRpZgoKCgojaWZuZGVmIFJBTkRPTV9TQ0FMRQojaWYgZGVmaW5lZChSQU5ET01fSElHSEVSX1JBTkdFKQojZGVmaW5lIFJBTkRPTV9TQ0FMRSB2ZWM0KC4xMDMxLCAuMTAzMCwgLjA5NzMsIC4xMDk5KQojZWxzZQojZGVmaW5lIFJBTkRPTV9TQ0FMRSB2ZWM0KDQ0My44OTcsIDQ0MS40MjMsIC4wOTczLCAuMTA5OSkKI2VuZGlmCiNlbmRpZgoKI2lmbmRlZiBGTkNfUkFORE9NCiNkZWZpbmUgRk5DX1JBTkRPTQpmbG9hdCByYW5kb20oaW4gZmxvYXQgeCkgewojaWYgZGVmaW5lZChSQU5ET01fU0lOTEVTUykKICAgIHggPSBmcmFjdCh4ICogUkFORE9NX1NDQUxFLngpOwogICAgeCAqPSB4ICsgMzMuMzM7CiAgICB4ICo9IHggKyB4OwogICAgcmV0dXJuIGZyYWN0KHgpOwojZWxzZQogICAgcmV0dXJuIGZyYWN0KHNpbih4KSAqIDQzNzU4LjU0NTMpOwojZW5kaWYKfQoKZmxvYXQgcmFuZG9tKGluIHZlYzIgc3QpIHsKI2lmIGRlZmluZWQoUkFORE9NX1NJTkxFU1MpCiAgICB2ZWMzIHAzICA9IGZyYWN0KHZlYzMoc3QueHl4KSAqIFJBTkRPTV9TQ0FMRS54eXopOwogICAgcDMgKz0gZG90KHAzLCBwMy55enggKyAzMy4zMyk7CiAgICByZXR1cm4gZnJhY3QoKHAzLnggKyBwMy55KSAqIHAzLnopOwojZWxzZQogICAgcmV0dXJuIGZyYWN0KHNpbihkb3Qoc3QueHksIHZlYzIoMTIuOTg5OCwgNzguMjMzKSkpICogNDM3NTguNTQ1Myk7CiNlbmRpZgp9CgpmbG9hdCByYW5kb20oaW4gdmVjMyBwb3MpIHsKI2lmIGRlZmluZWQoUkFORE9NX1NJTkxFU1MpCiAgICBwb3MgID0gZnJhY3QocG9zICogUkFORE9NX1NDQUxFLnh5eik7CiAgICBwb3MgKz0gZG90KHBvcywgcG9zLnp5eCArIDMxLjMyKTsKICAgIHJldHVybiBmcmFjdCgocG9zLnggKyBwb3MueSkgKiBwb3Mueik7CiNlbHNlCiAgICByZXR1cm4gZnJhY3Qoc2luKGRvdChwb3MueHl6LCB2ZWMzKDcwLjk4OTgsIDc4LjIzMywgMzIuNDM1NSkpKSAqIDQzNzU4LjU0NTMxMjMpOwojZW5kaWYKfQoKZmxvYXQgcmFuZG9tKGluIHZlYzQgcG9zKSB7CiNpZiBkZWZpbmVkKFJBTkRPTV9TSU5MRVNTKQogICAgcG9zID0gZnJhY3QocG9zICogUkFORE9NX1NDQUxFKTsKICAgIHBvcyArPSBkb3QocG9zLCBwb3Mud3p4eSszMy4zMyk7CiAgICByZXR1cm4gZnJhY3QoKHBvcy54ICsgcG9zLnkpICogKHBvcy56ICsgcG9zLncpKTsKI2Vsc2UKICAgIGZsb2F0IGRvdF9wcm9kdWN0ID0gZG90KHBvcywgdmVjNCgxMi45ODk4LDc4LjIzMyw0NS4xNjQsOTQuNjczKSk7CiAgICByZXR1cm4gZnJhY3Qoc2luKGRvdF9wcm9kdWN0KSAqIDQzNzU4LjU0NTMpOwojZW5kaWYKfQoKdmVjMiByYW5kb20yKGZsb2F0IHApIHsKICAgIHZlYzMgcDMgPSBmcmFjdCh2ZWMzKHApICogUkFORE9NX1NDQUxFLnh5eik7CiAgICBwMyArPSBkb3QocDMsIHAzLnl6eCArIDE5LjE5KTsKICAgIHJldHVybiBmcmFjdCgocDMueHggKyBwMy55eikgKiBwMy56eSk7Cn0KCnZlYzIgcmFuZG9tMih2ZWMyIHApIHsKICAgIHZlYzMgcDMgPSBmcmFjdChwLnh5eCAqIFJBTkRPTV9TQ0FMRS54eXopOwogICAgcDMgKz0gZG90KHAzLCBwMy55enggKyAxOS4xOSk7CiAgICByZXR1cm4gZnJhY3QoKHAzLnh4ICsgcDMueXopICogcDMuenkpOwp9Cgp2ZWMyIHJhbmRvbTIodmVjMyBwMykgewogICAgcDMgPSBmcmFjdChwMyAqIFJBTkRPTV9TQ0FMRS54eXopOwogICAgcDMgKz0gZG90KHAzLCBwMy55enggKyAxOS4xOSk7CiAgICByZXR1cm4gZnJhY3QoKHAzLnh4ICsgcDMueXopICogcDMuenkpOwp9Cgp2ZWMzIHJhbmRvbTMoZmxvYXQgcCkgewogICAgdmVjMyBwMyA9IGZyYWN0KHZlYzMocCkgKiBSQU5ET01fU0NBTEUueHl6KTsKICAgIHAzICs9IGRvdChwMywgcDMueXp4ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwMy54eHkgKyBwMy55enopICogcDMuenl4KTsgCn0KCnZlYzMgcmFuZG9tMyh2ZWMyIHApIHsKICAgIHZlYzMgcDMgPSBmcmFjdCh2ZWMzKHAueHl4KSAqIFJBTkRPTV9TQ0FMRS54eXopOwogICAgcDMgKz0gZG90KHAzLCBwMy55eHogKyAxOS4xOSk7CiAgICByZXR1cm4gZnJhY3QoKHAzLnh4eSArIHAzLnl6eikgKiBwMy56eXgpOwp9Cgp2ZWMzIHJhbmRvbTModmVjMyBwKSB7CiAgICBwID0gZnJhY3QocCAqIFJBTkRPTV9TQ0FMRS54eXopOwogICAgcCArPSBkb3QocCwgcC55eHogKyAxOS4xOSk7CiAgICByZXR1cm4gZnJhY3QoKHAueHh5ICsgcC55enopICogcC56eXgpOwp9Cgp2ZWM0IHJhbmRvbTQoZmxvYXQgcCkgewogICAgdmVjNCBwNCA9IGZyYWN0KHAgKiBSQU5ET01fU0NBTEUpOwogICAgcDQgKz0gZG90KHA0LCBwNC53enh5ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwNC54eHl6ICsgcDQueXp6dykgKiBwNC56eXd4KTsgICAKfQoKdmVjNCByYW5kb200KHZlYzIgcCkgewogICAgdmVjNCBwNCA9IGZyYWN0KHAueHl4eSAqIFJBTkRPTV9TQ0FMRSk7CiAgICBwNCArPSBkb3QocDQsIHA0Lnd6eHkgKyAxOS4xOSk7CiAgICByZXR1cm4gZnJhY3QoKHA0Lnh4eXogKyBwNC55enp3KSAqIHA0Lnp5d3gpOwp9Cgp2ZWM0IHJhbmRvbTQodmVjMyBwKSB7CiAgICB2ZWM0IHA0ID0gZnJhY3QocC54eXp4ICAqIFJBTkRPTV9TQ0FMRSk7CiAgICBwNCArPSBkb3QocDQsIHA0Lnd6eHkgKyAxOS4xOSk7CiAgICByZXR1cm4gZnJhY3QoKHA0Lnh4eXogKyBwNC55enp3KSAqIHA0Lnp5d3gpOwp9Cgp2ZWM0IHJhbmRvbTQodmVjNCBwNCkgewogICAgcDQgPSBmcmFjdChwNCAgKiBSQU5ET01fU0NBTEUpOwogICAgcDQgKz0gZG90KHA0LCBwNC53enh5ICsgMTkuMTkpOwogICAgcmV0dXJuIGZyYWN0KChwNC54eHl6ICsgcDQueXp6dykgKiBwNC56eXd4KTsKfQoKCiNlbmRpZgoKCgojaWZuZGVmIEZOQ19TUkFORE9NCiNkZWZpbmUgRk5DX1NSQU5ET00KCmZsb2F0IHNyYW5kb20oaW4gZmxvYXQgeCkgewogIHJldHVybiAtMS4gKyAyLiAqIGZyYWN0KHNpbih4KSAqIDQzNzU4LjU0NTMpOwp9CgpmbG9hdCBzcmFuZG9tKGluIHZlYzIgc3QpIHsKICByZXR1cm4gLTEuICsgMi4gKiBmcmFjdChzaW4oZG90KHN0Lnh5LCB2ZWMyKDEyLjk4OTgsIDc4LjIzMykpKSAqIDQzNzU4LjU0NTMpOwp9CgpmbG9hdCBzcmFuZG9tKGluIHZlYzMgcG9zKSB7CiAgcmV0dXJuIC0xLiArIDIuICogZnJhY3Qoc2luKGRvdChwb3MueHl6LCB2ZWMzKDcwLjk4OTgsIDc4LjIzMywgMzIuNDM1NSkpKSAqIDQzNzU4LjU0NTMxMjMpOwp9CgpmbG9hdCBzcmFuZG9tKGluIHZlYzQgcG9zKSB7CiAgICBmbG9hdCBkb3RfcHJvZHVjdCA9IGRvdChwb3MsIHZlYzQoMTIuOTg5OCw3OC4yMzMsNDUuMTY0LDk0LjY3MykpOwogICAgcmV0dXJuIC0xLiArIDIuICogZnJhY3Qoc2luKGRvdF9wcm9kdWN0KSAqIDQzNzU4LjU0NTMpOwp9Cgp2ZWMyIHNyYW5kb20yKGluIHZlYzIgc3QpIHsKICAgIGNvbnN0IHZlYzIgayA9IHZlYzIoLjMxODMwOTksIC4zNjc4Nzk0KTsKICAgIHN0ID0gc3QgKiBrICsgay55eDsKICAgIHJldHVybiAtMS4gKyAyLiAqIGZyYWN0KDE2LiAqIGsgKiBmcmFjdChzdC54ICogc3QueSAqIChzdC54ICsgc3QueSkpKTsKfQoKdmVjMyBzcmFuZG9tMyhpbiB2ZWMzIHApIHsKICAgIHAgPSB2ZWMzKCBkb3QocCwgdmVjMygxMjcuMSwgMzExLjcsIDc0LjcpKSwKICAgICAgICAgICAgZG90KHAsIHZlYzMoMjY5LjUsIDE4My4zLCAyNDYuMSkpLAogICAgICAgICAgICBkb3QocCwgdmVjMygxMTMuNSwgMjcxLjksIDEyNC42KSkpOwogICAgcmV0dXJuIC0xLiArIDIuICogZnJhY3Qoc2luKHApICogNDM3NTguNTQ1MzEyMyk7Cn0KCnZlYzIgc3JhbmRvbTIoaW4gdmVjMiBwLCBjb25zdCBpbiBmbG9hdCB0aWxlTGVuZ3RoKSB7CiAgICBwID0gbW9kKHAsIHZlYzIodGlsZUxlbmd0aCkpOwogICAgcmV0dXJuIHNyYW5kb20yKHApOwp9Cgp2ZWMzIHNyYW5kb20zKGluIHZlYzMgcCwgY29uc3QgaW4gZmxvYXQgdGlsZUxlbmd0aCkgewogICAgcCA9IG1vZChwLCB2ZWMzKHRpbGVMZW5ndGgpKTsKICAgIHJldHVybiBzcmFuZG9tMyhwKTsKfQoKI2VuZGlmCgoKI2lmbmRlZiBGTkNfQ1VCSUMKI2RlZmluZSBGTkNfQ1VCSUMgCmZsb2F0IGN1YmljKGNvbnN0IGluIGZsb2F0IHYpIHsgcmV0dXJuIHYqdiooMy4wLTIuMCp2KTsgfQp2ZWMyICBjdWJpYyhjb25zdCBpbiB2ZWMyIHYpICB7IHJldHVybiB2KnYqKDMuMC0yLjAqdik7IH0KdmVjMyAgY3ViaWMoY29uc3QgaW4gdmVjMyB2KSAgeyByZXR1cm4gdip2KigzLjAtMi4wKnYpOyB9CnZlYzQgIGN1YmljKGNvbnN0IGluIHZlYzQgdikgIHsgcmV0dXJuIHYqdiooMy4wLTIuMCp2KTsgfQoKZmxvYXQgY3ViaWMoY29uc3QgaW4gZmxvYXQgdmFsdWUsIGluIGZsb2F0IHNsb3BlMCwgaW4gZmxvYXQgc2xvcGUxKSB7CiAgICBmbG9hdCBhID0gc2xvcGUwICsgc2xvcGUxIC0gMi47CiAgICBmbG9hdCBiID0gLTIuICogc2xvcGUwIC0gc2xvcGUxICsgMy47CiAgICBmbG9hdCBjID0gc2xvcGUwOwogICAgZmxvYXQgdmFsdWUyID0gdmFsdWUgKiB2YWx1ZTsKICAgIGZsb2F0IHZhbHVlMyA9IHZhbHVlICogdmFsdWUyOwogICAgcmV0dXJuIGEgKiB2YWx1ZTMgKyBiICogdmFsdWUyICsgYyAqIHZhbHVlOwp9Cgp2ZWMyIGN1YmljKGNvbnN0IGluIHZlYzIgdmFsdWUsIGluIGZsb2F0IHNsb3BlMCwgaW4gZmxvYXQgc2xvcGUxKSB7CiAgICBmbG9hdCBhID0gc2xvcGUwICsgc2xvcGUxIC0gMi47CiAgICBmbG9hdCBiID0gLTIuICogc2xvcGUwIC0gc2xvcGUxICsgMy47CiAgICBmbG9hdCBjID0gc2xvcGUwOwogICAgdmVjMiB2YWx1ZTIgPSB2YWx1ZSAqIHZhbHVlOwogICAgdmVjMiB2YWx1ZTMgPSB2YWx1ZSAqIHZhbHVlMjsKICAgIHJldHVybiBhICogdmFsdWUzICsgYiAqIHZhbHVlMiArIGMgKiB2YWx1ZTsKfQoKdmVjMyBjdWJpYyhjb25zdCBpbiB2ZWMzIHZhbHVlLCBpbiBmbG9hdCBzbG9wZTAsIGluIGZsb2F0IHNsb3BlMSkgewogICAgZmxvYXQgYSA9IHNsb3BlMCArIHNsb3BlMSAtIDIuOwogICAgZmxvYXQgYiA9IC0yLiAqIHNsb3BlMCAtIHNsb3BlMSArIDMuOwogICAgZmxvYXQgYyA9IHNsb3BlMDsKICAgIHZlYzMgdmFsdWUyID0gdmFsdWUgKiB2YWx1ZTsKICAgIHZlYzMgdmFsdWUzID0gdmFsdWUgKiB2YWx1ZTI7CiAgICByZXR1cm4gYSAqIHZhbHVlMyArIGIgKiB2YWx1ZTIgKyBjICogdmFsdWU7Cn0KCnZlYzQgY3ViaWMoY29uc3QgaW4gdmVjNCB2YWx1ZSwgaW4gZmxvYXQgc2xvcGUwLCBpbiBmbG9hdCBzbG9wZTEpIHsKICAgIGZsb2F0IGEgPSBzbG9wZTAgKyBzbG9wZTEgLSAyLjsKICAgIGZsb2F0IGIgPSAtMi4gKiBzbG9wZTAgLSBzbG9wZTEgKyAzLjsKICAgIGZsb2F0IGMgPSBzbG9wZTA7CiAgICB2ZWM0IHZhbHVlMiA9IHZhbHVlICogdmFsdWU7CiAgICB2ZWM0IHZhbHVlMyA9IHZhbHVlICogdmFsdWUyOwogICAgcmV0dXJuIGEgKiB2YWx1ZTMgKyBiICogdmFsdWUyICsgYyAqIHZhbHVlOwp9CiNlbmRpZgoKCiNpZm5kZWYgRk5DX1FVSU5USUMKI2RlZmluZSBGTkNfUVVJTlRJQyAKCmZsb2F0IHF1aW50aWMoY29uc3QgaW4gZmxvYXQgdikgeyByZXR1cm4gdip2KnYqKHYqKHYqNi4wLTE1LjApKzEwLjApOyB9CnZlYzIgIHF1aW50aWMoY29uc3QgaW4gdmVjMiB2KSAgeyByZXR1cm4gdip2KnYqKHYqKHYqNi4wLTE1LjApKzEwLjApOyB9CnZlYzMgIHF1aW50aWMoY29uc3QgaW4gdmVjMyB2KSAgeyByZXR1cm4gdip2KnYqKHYqKHYqNi4wLTE1LjApKzEwLjApOyB9CnZlYzQgIHF1aW50aWMoY29uc3QgaW4gdmVjNCB2KSAgeyByZXR1cm4gdip2KnYqKHYqKHYqNi4wLTE1LjApKzEwLjApOyB9CgojZW5kaWYKCgoKI2lmbmRlZiBGTkNfR05PSVNFCiNkZWZpbmUgRk5DX0dOT0lTRQoKZmxvYXQgZ25vaXNlKGZsb2F0IHgpIHsKICAgIGZsb2F0IGkgPSBmbG9vcih4KTsgIAogICAgZmxvYXQgZiA9IGZyYWN0KHgpOyAgCiAgICByZXR1cm4gbWl4KHJhbmRvbShpKSwgcmFuZG9tKGkgKyAxLjApLCBzbW9vdGhzdGVwKDAuLDEuLGYpKTsgCn0KCmZsb2F0IGdub2lzZSh2ZWMyIHN0KSB7CiAgICB2ZWMyIGkgPSBmbG9vcihzdCk7CiAgICB2ZWMyIGYgPSBmcmFjdChzdCk7CiAgICBmbG9hdCBhID0gcmFuZG9tKGkpOwogICAgZmxvYXQgYiA9IHJhbmRvbShpICsgdmVjMigxLjAsIDAuMCkpOwogICAgZmxvYXQgYyA9IHJhbmRvbShpICsgdmVjMigwLjAsIDEuMCkpOwogICAgZmxvYXQgZCA9IHJhbmRvbShpICsgdmVjMigxLjAsIDEuMCkpOwogICAgdmVjMiB1ID0gY3ViaWMoZik7CiAgICByZXR1cm4gbWl4KCBhLCBiLCB1LngpICsKICAgICAgICAgICAgICAgIChjIC0gYSkqIHUueSAqICgxLjAgLSB1LngpICsKICAgICAgICAgICAgICAgIChkIC0gYikgKiB1LnggKiB1Lnk7Cn0KCmZsb2F0IGdub2lzZSh2ZWMzIHApIHsKICAgIHZlYzMgaSA9IGZsb29yKHApOwogICAgdmVjMyBmID0gZnJhY3QocCk7CiAgICB2ZWMzIHUgPSBxdWludGljKGYpOwogICAgcmV0dXJuIC0xLjAgKyAyLjAgKiBtaXgoIG1peCggbWl4KCByYW5kb20oaSArIHZlYzMoMC4wLDAuMCwwLjApKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5kb20oaSArIHZlYzMoMS4wLDAuMCwwLjApKSwgdS54KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaXgoIHJhbmRvbShpICsgdmVjMygwLjAsMS4wLDAuMCkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmRvbShpICsgdmVjMygxLjAsMS4wLDAuMCkpLCB1LngpLCB1LnkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWl4KCBtaXgoIHJhbmRvbShpICsgdmVjMygwLjAsMC4wLDEuMCkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmRvbShpICsgdmVjMygxLjAsMC4wLDEuMCkpLCB1LngpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1peCggcmFuZG9tKGkgKyB2ZWMzKDAuMCwxLjAsMS4wKSksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZG9tKGkgKyB2ZWMzKDEuMCwxLjAsMS4wKSksIHUueCksIHUueSksIHUueiApOwp9CgpmbG9hdCBnbm9pc2UodmVjMyBwLCBmbG9hdCB0aWxlTGVuZ3RoKSB7CiAgICB2ZWMzIGkgPSBmbG9vcihwKTsKICAgIHZlYzMgZiA9IGZyYWN0KHApOwogICAgICAgICAgICAKICAgIHZlYzMgdSA9IHF1aW50aWMoZik7CiAgICAgICAgCiAgICByZXR1cm4gbWl4KCBtaXgoIG1peCggZG90KCBzcmFuZG9tMyhpICsgdmVjMygwLjAsMC4wLDAuMCksIHRpbGVMZW5ndGgpLCBmIC0gdmVjMygwLjAsMC4wLDAuMCkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdCggc3JhbmRvbTMoaSArIHZlYzMoMS4wLDAuMCwwLjApLCB0aWxlTGVuZ3RoKSwgZiAtIHZlYzMoMS4wLDAuMCwwLjApKSwgdS54KSwKICAgICAgICAgICAgICAgICAgICBtaXgoIGRvdCggc3JhbmRvbTMoaSArIHZlYzMoMC4wLDEuMCwwLjApLCB0aWxlTGVuZ3RoKSwgZiAtIHZlYzMoMC4wLDEuMCwwLjApKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3QoIHNyYW5kb20zKGkgKyB2ZWMzKDEuMCwxLjAsMC4wKSwgdGlsZUxlbmd0aCksIGYgLSB2ZWMzKDEuMCwxLjAsMC4wKSksIHUueCksIHUueSksCiAgICAgICAgICAgICAgICBtaXgoIG1peCggZG90KCBzcmFuZG9tMyhpICsgdmVjMygwLjAsMC4wLDEuMCksIHRpbGVMZW5ndGgpLCBmIC0gdmVjMygwLjAsMC4wLDEuMCkpLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdCggc3JhbmRvbTMoaSArIHZlYzMoMS4wLDAuMCwxLjApLCB0aWxlTGVuZ3RoKSwgZiAtIHZlYzMoMS4wLDAuMCwxLjApKSwgdS54KSwKICAgICAgICAgICAgICAgICAgICBtaXgoIGRvdCggc3JhbmRvbTMoaSArIHZlYzMoMC4wLDEuMCwxLjApLCB0aWxlTGVuZ3RoKSwgZiAtIHZlYzMoMC4wLDEuMCwxLjApKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3QoIHNyYW5kb20zKGkgKyB2ZWMzKDEuMCwxLjAsMS4wKSwgdGlsZUxlbmd0aCksIGYgLSB2ZWMzKDEuMCwxLjAsMS4wKSksIHUueCksIHUueSksIHUueiApOwp9Cgp2ZWMzIGdub2lzZTModmVjMyB4KSB7CiAgICByZXR1cm4gdmVjMyhnbm9pc2UoeCt2ZWMzKDEyMy40NTYsIDAuNTY3LCAwLjM3KSksCiAgICAgICAgICAgICAgICBnbm9pc2UoeCt2ZWMzKDAuMTEsIDQ3LjQzLCAxOS4xNykpLAogICAgICAgICAgICAgICAgZ25vaXNlKHgpICk7Cn0KCiNlbmRpZgoKCgoKI2lmbmRlZiBGQk1fT0NUQVZFUwojZGVmaW5lIEZCTV9PQ1RBVkVTIDQKI2VuZGlmCgojaWZuZGVmIEZCTV9OT0lTRV9GTkMKI2RlZmluZSBGQk1fTk9JU0VfRk5DKFVWKSBzbm9pc2UoVVYpCiNlbmRpZgoKI2lmbmRlZiBGQk1fTk9JU0UyX0ZOQwojZGVmaW5lIEZCTV9OT0lTRTJfRk5DKFVWKSBGQk1fTk9JU0VfRk5DKFVWKQojZW5kaWYKCiNpZm5kZWYgRkJNX05PSVNFM19GTkMKI2RlZmluZSBGQk1fTk9JU0UzX0ZOQyhVVikgRkJNX05PSVNFX0ZOQyhVVikKI2VuZGlmCgojaWZuZGVmIEZCTV9OT0lTRV9USUxBQkxFX0ZOQwojZGVmaW5lIEZCTV9OT0lTRV9USUxBQkxFX0ZOQyhVViwgVElMRSkgZ25vaXNlKFVWLCBUSUxFKQojZW5kaWYKCiNpZm5kZWYgRkJNX05PSVNFM19USUxBQkxFX0ZOQwojZGVmaW5lIEZCTV9OT0lTRTNfVElMQUJMRV9GTkMoVVYsIFRJTEUpIEZCTV9OT0lTRV9USUxBQkxFX0ZOQyhVViwgVElMRSkKI2VuZGlmCgojaWZuZGVmIEZCTV9OT0lTRV9UWVBFCiNkZWZpbmUgRkJNX05PSVNFX1RZUEUgZmxvYXQKI2VuZGlmCgojaWZuZGVmIEZCTV9WQUxVRV9JTklUSUFMCiNkZWZpbmUgRkJNX1ZBTFVFX0lOSVRJQUwgMC4wCiNlbmRpZgoKI2lmbmRlZiBGQk1fU0NBTEVfU0NBTEFSCiNkZWZpbmUgRkJNX1NDQUxFX1NDQUxBUiAyLjAKI2VuZGlmCgojaWZuZGVmIEZCTV9BTVBMSVRVRF9JTklUSUFMCiNkZWZpbmUgRkJNX0FNUExJVFVEX0lOSVRJQUwgMC41CiNlbmRpZgoKI2lmbmRlZiBGQk1fQU1QTElUVURfU0NBTEFSCiNkZWZpbmUgRkJNX0FNUExJVFVEX1NDQUxBUiAwLjUKI2VuZGlmCgojaWZuZGVmIEZOQ19GQk0KI2RlZmluZSBGTkNfRkJNCkZCTV9OT0lTRV9UWVBFIGZibShpbiB2ZWMyIHN0KSB7CiAgICAKICAgIEZCTV9OT0lTRV9UWVBFIHZhbHVlID0gRkJNX05PSVNFX1RZUEUoRkJNX1ZBTFVFX0lOSVRJQUwpOwogICAgZmxvYXQgYW1wbGl0dWQgPSBGQk1fQU1QTElUVURfSU5JVElBTDsKCiAgICAKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgRkJNX09DVEFWRVM7IGkrKykgewogICAgICAgIHZhbHVlICs9IGFtcGxpdHVkICogRkJNX05PSVNFMl9GTkMoc3QpOwogICAgICAgIHN0ICo9IEZCTV9TQ0FMRV9TQ0FMQVI7CiAgICAgICAgYW1wbGl0dWQgKj0gRkJNX0FNUExJVFVEX1NDQUxBUjsKICAgIH0KICAgIHJldHVybiB2YWx1ZTsKfQoKRkJNX05PSVNFX1RZUEUgZmJtKGluIHZlYzMgcG9zKSB7CiAgICAKICAgIEZCTV9OT0lTRV9UWVBFIHZhbHVlID0gRkJNX05PSVNFX1RZUEUoRkJNX1ZBTFVFX0lOSVRJQUwpOwogICAgZmxvYXQgYW1wbGl0dWQgPSBGQk1fQU1QTElUVURfSU5JVElBTDsKCiAgICAKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgRkJNX09DVEFWRVM7IGkrKykgewogICAgICAgIHZhbHVlICs9IGFtcGxpdHVkICogRkJNX05PSVNFM19GTkMocG9zKTsKICAgICAgICBwb3MgKj0gRkJNX1NDQUxFX1NDQUxBUjsKICAgICAgICBhbXBsaXR1ZCAqPSBGQk1fQU1QTElUVURfU0NBTEFSOwogICAgfQogICAgcmV0dXJuIHZhbHVlOwp9CgpGQk1fTk9JU0VfVFlQRSBmYm0odmVjMyBwLCBmbG9hdCB0aWxlTGVuZ3RoKSB7CiAgICBjb25zdCBmbG9hdCBwZXJzaXN0ZW5jZSA9IDAuNTsKICAgIGNvbnN0IGZsb2F0IGxhY3VuYXJpdHkgPSAyLjA7CgogICAgZmxvYXQgYW1wbGl0dWRlID0gMC41OwogICAgRkJNX05PSVNFX1RZUEUgdG90YWwgPSBGQk1fTk9JU0VfVFlQRSgwLjApOwogICAgZmxvYXQgbm9ybWFsaXphdGlvbiA9IDAuMDsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IEZCTV9PQ1RBVkVTOyArK2kpIHsKICAgICAgICBmbG9hdCBub2lzZVZhbHVlID0gRkJNX05PSVNFM19USUxBQkxFX0ZOQyhwLCB0aWxlTGVuZ3RoICogbGFjdW5hcml0eSAqIDAuNSkgKiAwLjUgKyAwLjU7CiAgICAgICAgdG90YWwgKz0gbm9pc2VWYWx1ZSAqIGFtcGxpdHVkZTsKICAgICAgICBub3JtYWxpemF0aW9uICs9IGFtcGxpdHVkZTsKICAgICAgICBhbXBsaXR1ZGUgKj0gcGVyc2lzdGVuY2U7CiAgICAgICAgcCA9IHAgKiBsYWN1bmFyaXR5OwogICAgfQoKICAgIHJldHVybiB0b3RhbCAvIG5vcm1hbGl6YXRpb247Cn0KI2VuZGlmCgoKCgoKCnZvaWQgbWFpbigpIHsKCiAgdlV2ID0gdXY7CgogIHBvcyA9IHBvc2l0aW9uOwoKICAKCiAgdkRpc3BsYWNlbWVudCA9IGNub2lzZShwb3NpdGlvbiooMC4wICsgMS4wL3Vfc2NhbGUpICsgdmVjMyh1X3RpbWUqdV9zcGVlZCkpOwoKICAKCiAgZmxvYXQgZnJlcXVlbmN5ID0gNC4wOwoKICBmbG9hdCBzdHJpcGVzID0gZnJlcXVlbmN5ICogcG9zaXRpb24ueTsKCiAgZmxvYXQgcm91bmRlZCA9IGZsb29yKHN0cmlwZXMpOwoKICAKCiAgaWYgKG1vZChyb3VuZGVkLCAyLjApID09IDAuMCl7CgogICAgdkRpc3BsYWNlbWVudCAqPSAyLjI7CgogIH0KCiAgCgogIHZlYzMgbmV3UG9zaXRpb24gPSBwb3NpdGlvbiArIG5vcm1hbCAqIHZEaXNwbGFjZW1lbnQqdV9pbnRlbnNpdHk7CgogIAoKICB2ZWM0IG1vZGVsUG9zaXRpb24gPSBtb2RlbE1hdHJpeCAqIHZlYzQobmV3UG9zaXRpb24sIDEuMCk7CgogIHZlYzQgdmlld1Bvc2l0aW9uID0gdmlld01hdHJpeCAqIG1vZGVsUG9zaXRpb247CgogIHZlYzQgcHJvamVjdGVkUG9zaXRpb24gPSBwcm9qZWN0aW9uTWF0cml4ICogdmlld1Bvc2l0aW9uOwoKCgogIGdsX1Bvc2l0aW9uID0gcHJvamVjdGVkUG9zaXRpb247CgogIAoKICAvL2dsX1Bvc2l0aW9uID0gcHJvamVjdGlvbk1hdHJpeCAqIG1vZGVsVmlld01hdHJpeCAqIHZlYzQocG9zaXRpb24sIDEuMCk7CgogIAoKfQoKYCwKICAgICAgICAgICAgICAgIHVuaWZvcm1zOiB7dV9pbnRlbnNpdHk6IHt2YWx1ZTogMC4yNDJ9LHVfY29sb3JzOiB7dmFsdWU6IFtuZXcgVEhSRUUuVmVjdG9yNCgwLjIzNTI5NDExNzY0NzA1ODgyLDAuNTI5NDExNzY0NzA1ODgyNCwxLDEpLG5ldyBUSFJFRS5WZWN0b3I0KDAuNjY2NjY2NjY2NjY2NjY2NiwwLjU5MjE1Njg2Mjc0NTA5OCwxLDEpXX0sdV9zcGVlZDoge3ZhbHVlOiAwLjUwNX0sdV9zY2FsZToge3ZhbHVlOiAwLjgzNn0sdV9ub2lzZToge3ZhbHVlOiB0cnVlfSx1X25vaXNlX2NvbG9yOiB7dmFsdWU6IFsxLDAsMF19LHVfdGltZToge3ZhbHVlOiAwfSx1X21vdXNlOiB7dmFsdWU6IFswLDBdfSx1X3Jlc29sdXRpb246IHt2YWx1ZTogWzI0MCw1ODBdfX0sCiAgICAgICAgICAgICAgICB3aXJlZnJhbWU6IGZhbHNlLCAKICAgICAgICAgICAgICAgIHdpcmVmcmFtZUxpbmV3aWR0aDogMCwKICAgICAgICAgICAgICAgIGRpdGhlcmluZzogZmFsc2UsCiAgICAgICAgICAgICAgICBmbGF0U2hhZGluZzogdHJ1ZSwKICAgICAgICAgICAgICAgIGRvdWJsZVNpZGVkOiB0cnVlLAogICAgICAgICAgICAgICAgZ2xzbFZlcnNpb246ICIxMDAiCiAgICAgICAgICAgIH0pCiAgICAgICAgKTsgIAogICAgfQoKICAgIFJlYWN0RE9NLnJlbmRlcihSZWFjdC5jcmVhdGVFbGVtZW50KENhbnZhcyx7CiAgICAgICAgICAgIGdsOiB7CiAgICAgICAgICAgICAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUsCiAgICAgICAgICAgICAgICBwcmVtdWx0aXBsaWVkQWxwaGE6IGZhbHNlLAogICAgICAgICAgICAgICAgYWxwaGE6IHRydWUsCiAgICAgICAgICAgICAgICB0cmFuc3BhcmVudDogdHJ1ZSwKICAgICAgICAgICAgICAgIGFudGlhbGlhczogdHJ1ZSwKICAgICAgICAgICAgICAgIHByZWNpc2lvbjogImhpZ2hwIiwKICAgICAgICAgICAgICAgIHBvd2VyUHJlZmVyZW5jZTogImhpZ2gtcGVyZm9ybWFuY2UiCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHJlc2l6ZTp7CiAgICAgICAgICAgICAgICBkZWJvdW5jZTogMCwKICAgICAgICAgICAgICAgIHNjcm9sbDogZmFsc2UsCiAgICAgICAgICAgICAgICBvZmZzZXRTaXplOiB0cnVlCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIGRwcjogMSwKICAgICAgICAgICAgY2FtZXJhOiB7CiAgICAgICAgICAgICAgICBmb3Y6IDc1LAogICAgICAgICAgICAgICAgbmVhcjogMC4xLAogICAgICAgICAgICAgICAgZmFyOiAxMDAwLAogICAgICAgICAgICAgICAgcG9zaXRpb246IFswLDAsMl0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgc3R5bGU6eyBoZWlnaHQ6ICIxMDAlIiwgd2lkdGg6ICIxMDAlIiB9CiAgICAgICAgfSwKICAgICAgICBSZWFjdC5jcmVhdGVFbGVtZW50KFRleHR1cmVNZXNoKSAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgKSwgZW1iZWRSb290KTsKPC9zY3JpcHQ+CiAgICAgICAgPC9oZWFkPgogICAgICAgIDxib2R5Pgo8IS0tIEFTU0VUIE5PVCBJTkxJTkVEOiBhc3NldHMvYm9vay41ZmIxMWI4ZC5zdmcgLS0+Cgo8IS0tIEFTU0VUIE5PVCBJTkxJTkVEOiBhc3NldHMvbHlnaWEuZjc0OTA1OTQuc3ZnIC0tPgoKPCEtLSBBU1NFVCBOT1QgSU5MSU5FRDogYXNzZXRzL292ZXJmbG93LjhkNTA0MTVkLnN2ZyAtLT4KCjwhLS0gQVNTRVQgTk9UIElOTElORUQ6IGFzc2V0cy90cmFzaC41MjRkYmNkMy5zdmcgLS0+Cgo8IS0tIEFTU0VUIE5PVCBJTkxJTkVEOiBhc3NldHMvdmVydGljYWwuOTA2MTA4NDkuc3ZnIC0tPgoKPCEtLSBBU1NFVCBOT1QgSU5MSU5FRDogYXNzZXRzL2hvcml6b250YWwuNDRmNzcxZjguc3ZnIC0tPgoKPCEtLSBBU1NFVCBOT1QgSU5MSU5FRDogYXNzZXRzL2FkZC5hNTUyNDBkZC5zdmcgLS0+Cgo8IS0tIEFTU0VUIE5PVCBJTkxJTkVEOiBhc3NldHMvc2lnLjg1MGE4NWU3LnN2ZyAtLT4KCjwhLS0gQVNTRVQgTk9UIElOTElORUQ6IGFzc2V0cy9taW51cy4xZTFhMGFiZC5zdmcgLS0+Cgo8IS0tIEFTU0VUIE5PVCBJTkxJTkVEOiBhc3NldHMvZWZmZWN0LjQ1NTcyNDNmLnN2ZyAtLT4KCjwhLS0gQVNTRVQgTk9UIElOTElORUQ6IGFzc2V0cy92aXNpYmxlLmM2ZDRlMWMwLnN2ZyAtLT4KCjwhLS0gQVNTRVQgTk9UIElOTElORUQ6IGFzc2V0cy9oaWRkZW4uNWE0ZmMyNTQuc3ZnIC0tPgoKPCEtLSBBU1NFVCBOT1QgSU5MSU5FRDogYXNzZXRzL3dvcmtlci5iNzYxZmIxMS5qcyAtLT4KPC9ib2R5PgogICAgICAgIDwvaHRtbD4=
Message:
[GroupMarkerNotSet(crbug.com/242999)!:A0601D007C2C0000]Automatic fallback to software WebGL has been deprecated. Please use the --enable-unsafe-swiftshader flag to opt in to lower security guarantees for trusted content.

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

Indicators

This is a term in the security industry to describe indicators such as IPs, Domains, Hashes, etc. This does not imply that any of these indicate malicious activity.

cdn.skypack.dev
events.framer.com
framer.com
framerusercontent.com
gist.github.com
github-production-user-asset-6210df.s3.amazonaws.com
scape.run
140.82.121.4
16.15.192.161
172.67.74.194
18.173.205.72
2600:9000:2724:ec00:d:ada1:a280:93a1
2600:9000:2761:c600:10:9b9d:b9c0:93a1
3.160.150.29
31.43.161.6
1787bf9c24e8e496124b6dcc1f82c49e7355dc65c4ba39accde878811156ed3e
1b2c4c48747275ea1fd255424ca897c88759557ba4f3ea06750a74dc4a40b078
1d1b06f56d00a86ad73c7efb6bafe888acc86895f4f53deeac02f9c8036509c8
1fb9a0020472f1ed0d524f678b9ac073b8f90d28c5a452898fd3affbeafdae51
2a0b79e9265bf97c172ade9f9e64632daf16da49c5111031c1e6fceac529b757
2f1040eb66570b6eb6b943d10ca5d91fb8c6dddecac26fe8823627437291229b
3ca38a1545d7f43176ad4a073977931be5cc8b17d80fd630f7bd43340ff68458
4107b11930c4eef1f6ae5a76d441562e6d21a601f1781f37fd085542cd87412b
4365a7c9dac93e3f950851afc60bef8103cd3b7afa89ac07090bdf033c162333
43f3415724ac62a616e8f187ee0211fc6931db477515e14c09ccb903171f460f
54ef9ada1ef40e2199b9aa67973dc88e71fc07a8e4ee8532fb5a6ac4d05ef21f
5b2131fffdf17b15c87f57ee54804af57e4cd291a99efa3a07708a2d34fec7b7
61d3d7400fc5fa44d134ea22432b7000db640d459ef3fed8188bef9b1504b1d8
63248cceb0ec8666c0dfa3b855a8894d9a4c10c503e953ee0c21c8d725dda205
63a94835370bd346dab17efd5af59d6e525b7bd4311d0c93a2b861340098b546
7c9d8ff58cba151c3da4c7c4143852005561c5d4f29db86cb3e503752b6ca92e
7ca4bd4f830b0bdf79cc6f94ebf93cb17e74802ef93ae9b6394da373e453542b
826b486b648601b2b8e31e586d03ace4a4b10bae47bf90c13e3e237359cf9a7d
89e61318afc569842f98ccd196ff7cfbb36ec69bad3af935dd5c7149b494fde4
8b91ee4af78a9558d2bbbc889b190d7c47647405fabc8ae5be1c014d6c938228
94ddc06d88eb07050b81511d8664e32dc99cb5ff31fe74a65e893c0041f23e3b
957bbdc476a890fc06075cb19676f3dc271889bdea4b68972d3731126efacc23
95901da21e67a1cd129f3e6842e9386537e745001d0686f1d32a01632185fd84
9cedd1d49863bff825819b8ccdd1360f577a6389aff28d250bdb1ae908497ded
a9428e5e5f6c5ede3339114a8be6230e2cc39a2190d03f1092ae93bdaf556891
abb60c0ca31aab69e8b26906186e66d5e384cc9cf930f6c1b023d4ad2fccd9bd
b2f1f0469e60943b237371194b711845dda30f5ae1a69b95576510ea31a6c577
b85f373cd3df0a3743527025a073957566585a08ba398f3d427640d47ea3a27a
c3d14fbe8868ed06feb46d2fb64910acad0a7c94c750923bebbe1684ab485678
c4370914a15f3a5281093ecde704428f2138d26847c51e6d05500eadf6cbe224
d67a56e0f98f9bd5b9b5ed0408ea913b2d3e14265979e457d905a795ac5f4b4b
d75198c87b0640a682645d8cfdbaa67b5dd4b71aec625582e65d05e87caba008
dbda85465ee1fe36568f873720b62e55f891fa287a7f77715e2dce8e65550056
e07ddfd24f1a6b1cca91f244b5ceca2aa1c9d712dddd6ef1ba662d1d3b6de5c2
e34792a615372ec292a1e1c8b9d2e61b50befd39bb1f95ef23958886674fcc72
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
f50a1ca8fb223a2bb43f2ddc142ef98c715f44ad2a4b0c58c57733f7c6fa8bd6
f8ed6769874634f22710d18334369c357cc257893a768ee47b8edeb13a90441d
fddcbebd6afcc401d8cc0dccb85ccadd403955594e9639c6d8fd88d6b40925f8